Strudelify

Bella gioventu

Zero

KeyC majorTempo140 bpm
0:00/0:00
// Bella gioventu — Zero
// 140 bpm, 4/4, key C 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: Full arrangement: all 216 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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 · fretless bass
const bass = note(`<
  ~ A@16 B@2 C@2 B@2 C@2 D E F@2 G H I J K@2 L@2 M H N@2 K@2 L@2 O@2 P@2 D E F@2 G H I Q K@2 L@2 M H N@2 K@2 L@2 O@2 R S
  T U V W X Y Z AA AB AC I AD AE AF AG AH AI AJ AK AL X Y Z AA AB AC I AD AE AF AG AH AM AN AO AL AP AQ M AR B@2 C@2 D E
  AS AT AU AV I Q K@2 L@2 M H N@2 K@2 L@2 O@2 R S T U V W X Y Z AA AB AC I AD AE AF AG AH AI AJ AK AL X Y Z AA AB AC I
  AD AE AF AG AH AM AN AO AL X Y Z AA AB AC I AD AE AF AG AH AI AJ AK AL X Y Z AA AB AC I AD AE AF AG AH AM AN AO AL AP
  AQ M AW AX@3
>`.pickRestart({
  A: "[~@32 c1@26 ~@2 c1@3 ~ c1@31 ~ c1@26 ~@2 c1@3 ~, c1@31 ~@97, ~@6 c2@51 ~ c2@63 ~ c2@6]/8",
  B: "[~ c1@14 c2, c2@15 ~]/2", C: "[~@2 c2@24 ~@2 c2@3 ~, c1@25 ~ c1@5 ~]/2", D: "c2@15 ~", E: "c1 c2",
  F: "[e1@3 e2]/2", G: "d2", H: "g1", I: "c2", J: "g1@15 ~", K: "a1/2", L: "[g1@31 ~]/2", M: "f1",
  N: "[c2@24 b1@7 ~]/2", O: "f1/2", P: "[~@14 g2@16 g1 ~, g1@29 ~@3]/2", Q: "b1 g1", R: "g#1",
  S: "g#2@9 ~ d#2@2 g#2@2 g#1@2", T: "g1@14 d2 ~", U: "g2@3 ~ g2 ~ g2@6 d2@2 c2@2", V: "~@3 g2@3 g1 g2, g1 ~",
  W: "f2@7 ~ g2@6 ~@2", X: "c2@9 ~@3 c2 ~@3", Y: "c2@8 e2@7 ~", Z: "f1@10 ~@2 f1 ~@3", AA: "f1 e2", AB: "d2@9 ~@3 d2@4",
  AC: "g1@9 ~@3 g1@4", AD: "b1@10 ~@2 b1@3 ~", AE: "a1@12 ~@2 a1 ~", AF: "a1@5 ~ a1@2", AG: "e1@8 e2@6 e1 ~",
  AH: "e1@11 ~ e2@2 e1@2", AI: "f1@12 ~@2 f1 ~", AJ: "f1@10 ~@2 f1@3 ~", AK: "g1@14 g2 ~", AL: "g2@9 ~ d2@2 g1@4",
  AM: "f2", AN: "~@4 f2@6 e2@5 ~", AO: "d1@10 d2@2 d1@2 a1 ~", AP: "c2@9 ~ b1@6", AQ: "a1@10 g1@5 ~",
  AR: "~@6 g2 ~ g2@4 g1@3 ~, g1@9 ~@7", AS: "~@14 g2 ~, g1", AT: "g2 g1", AU: "f1@7 f2", AV: "b1@15 ~",
  AW: "~@6 g2 ~ g2@5 g1@3, g1@9 ~@7", AX: "[~@7 c1@36 ~@5, ~@2 c2@41 ~@5]/3",
})).s("gm_fretless_bass").gain(0.37)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A@4 B@4 A@4 B@4 C@2 D@3 E@3 F@5 G H I J@4 K@4 J@4 L@2 M@2 F@5 G H I N@2 O@2 N@2 P@2 Q R S@2 N@2 T@2 U@3 V W@4 X Y@3
  Z@4 AA@2 AB@2 W@4 AC AD@3 AE AF AG@2 AA@2 AH AI ~@4 AJ@4 F@5 G H I N@2 O@2 N@2 P@2 Q R S@2 N@2 T@2 U@3 AK W@4 AC AD@3
  Z@4 AA@2 AB@2 W@4 AC AD@3 AE AF AG@2 AA@2 AH AI W@4 AC AD@3 Z@4 AA@2 AB@2 W@4 AC AD@3 AE AF AG@2 AA@2 AH AI ~@4 AL@3
>`.pickRestart({
  A: "[c3,c4]/4", B: "[c4 d4 c4@2, c3]/4", C: "[c3,e4,g4]/2", D: "[g4@9 ~@5 [d5,b5]@2, c5, d5@7 ~, ~@28 g5@19 ~]/3",
  E: "[b4@6 e5@4 d5@2 c5@4 ~@8 g4@23 ~, g5@25 ~@23, ~ d5@2]/3",
  F: "[~@24 c4@7 ~@33 [f3,a3,c4]@16, [g3,e4]@13 ~@3, c3@16 ~ b3@16 ~@7]/5", G: "[b3,d4], f3@7 ~", H: "f3 e3, c4",
  I: "[b2,d3,g3]", J: "[[a5,c6] [g5,b5], e5]/4", K: "[~@2 d5@2 ~@3 [b4,d5], c5@55 ~@9, a4 g4]/4", L: "[a4,f5]/2",
  M: "[c4 b3, g4]/2", N: "[a3,c4]/2", O: "[g3,b3]/2", P: "[e4@3 [b3,d4], c4 ~@31]/2", Q: "c4", R: "e4@2 c4 a3",
  S: "[~ b4, g4]/2", T: "[g#3,c4,d#4]/2", U: "[c4 ~ b3, g4]/3", V: "[a3,c4] [b3,d4]", W: "[e4@32 f3@24 e3@7 ~, c4]/4",
  X: "~ d4@15, a3", Y: "[~@16 c4@29 ~@3, b3 ~@2, ~ g3@44 ~@3]/3", Z: "[a4 [b3,g4], c4@39 ~@25]/4", AA: "[c4,f4]/2",
  AB: "[c4@8 b3@7 ~, g4@15 ~]/2", AC: "[a3,d4]", AD: "[b3@16 c4@29 ~@3, g3@11 ~]/3", AE: "c4 b3", AF: "a3@8 e3@7 ~",
  AG: "[b3,g4]/2", AH: "[f4,d5]", AI: "[c4,c5]@4 [b3,d5]@3 ~", AJ: "[g3,e4,g4]/4", AK: "[a3,c4]@8 [b3,d4]@5 ~@3",
  AL: "[~ [g3,e4,g4]@41 ~@6]/3", // C
})).s("gm_string_ensemble_2").gain(0.26)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@21 A B@3 ~@12 C ~@2 D ~@6 E@2 ~@4 F G H I ~@2 J@2 K@2 L@2 M@2 N@2 O P Q@2 R@2 S T U@2 V@2 O W X Y Z@2 AA@2 AB@2 AC
  AD U@2 V@2 O W X Y AE AF AG AH AI AJ AK AL AM AN AO@2 ~@8 F G H I AP AQ@3 AR AS AT@2 AU@2 N@2 O P Q@2 AV@2 AW AX U@2
  V@2 O W X AY Z@2 AA@2 AB@2 AC AZ U@2 V@2 O W X AY AE AF AG AH AI AJ AK BA U@2 BB@2 BC@2 BD@2 BE BF BG BH BI@2 BJ BK
  BL@2 BM@2 BN@2 BO@2 BP@2 BQ BR BS@2 BT BU AM AN BV BW@2 ~@2
>`.pickRestart({
  A: "~@5 [d5,b5]@3", B: "[b4@6 e5@4 d5@2 ~@12 g4@21 ~@3, g5@15 ~, ~@16 d5@29 ~@3]/3", C: "c5", D: "~ d5",
  E: "[g4,d5]/2", F: "f4", G: "[g4,b4]", H: "f4 e4", I: "[d4,b4,d5]", J: "[~@3 b4, g4]/2",
  K: "[[a4,c5]@8 c4@16 d4@7 ~, ~@8 f4@23 ~]/2", L: "[[e4,g4]@6 b4 d5, ~@3 [d4,g4]]/2", M: "[c5@4 e5@2 c5 a4, e4]/2",
  N: "[b4@16 e5@8 b4@4 g4@3 ~, e4]/2", O: "a4 c5", P: "c4@4 d4@3 ~", Q: "[~ g#4, [g#3,c4,a#4]]/2", R: "[d5@7 c5, g4]/2",
  S: "[b4,d5]@4 ~@2 [b4,d5,g5]@5 ~ [d5,g5,b5]@3 ~", T: "[f5,a5,c6]@7 ~ [b5,d6]@8, ~@4 g5@3 ~",
  U: "[[g5,e6]@8 g5@16 c6@7 ~]/2", V: "[c6 f5@2 [e5,g5]]/2", W: "d5 [b4,g5]", X: "f5 e5, c5",
  Y: "[b4,d5]@4 d5@3 ~ b5@4 [g5,b5,d6]@4, ~ g5@2 ~, ~@8 d5@7 ~", Z: "[[c6,e6]@24 c6@2 d6@2 e6@2 c6 ~]/2",
  AA: "[~@10 a3@6 g3@8 g5@2 a5@2 b5@2 g5 ~, b5@24 c5 ~@7, e5@11 ~ b4@4]/2",
  AB: "[c5@23 ~ c5@2 d5@2 e5@2 f5@2, a5@13 ~@3]/2", AC: "[g4,d5]", AD: "~ b5 d6 b5, d5, g4@13 ~@3, g5 ~",
  AE: "[e5,c6] [d5,b5]", AF: "[c5,a5]@8 [g4,e5]@7 ~", AG: "[d5,b5] [c5,a5]", AH: "[b4,g5] [g4,e5]",
  AI: "[c5,a5] [b4,g5]", AJ: "[a4,f5]@9 ~ [b4,g5]@6", AK: "[d5,f5]", AL: "[c4,g4,c5] [b3,g4,d5]",
  AM: "[e5,g5]@4 ~ [b5,d6]@3", AN: "[a5,c6]@8 ~@2 [b4,d5]@5 ~", AO: "[a4 g4, c5]/2", AP: "~@6 a4 b4",
  AQ: "[c5@2 d5@2 g5@2 e5@41 ~]/3", AR: "~@6 c4 f4", AS: "d4 g4 b4 g4@5", AT: "[e4@6 b4 d5, g4 ~@23 [d4,g4]@8]/2",
  AU: "[~@2 e5 [c5,a5]@2 g5@2 [a4,e5]@9]/2", // F A5
  AV: "[~@6 g3@5 ~ c4@4 d4@6 ~@6 c5@4, g5, d5@7 ~, c5@13 ~@3, ~@11 g4@4 ~]/2",
  AW: "[b4,d5]@3 [b4,d5,g5]@3 [d5,g5,b5]@2", AX: "[f5,a5,c6] [g5,b5,d6]",
  AY: "[b4,d5]@4 d5@3 ~ b5@4 [g5,b5,d6]@2 ~@2, ~ g5@2 ~, ~@8 d5@7 ~", // Bm G
  AZ: "~@4 b5@4 d6@3 ~ b5@2 ~@2, d5, g4@13 ~@3, g5 ~", BA: "[c4,g4,c5]@4 [b3,g4,d5]@3 ~",
  BB: "[~ c5 b4 c5 a4 b4 c5@9 ~]/2",
  BC: "[~@2 [a4,f5]@2 [g4,e5]@2 [a4,f5]@2 d5@2 g4@2 [a4,f5]@8 [a4,d5,g5]@11 ~, ~@8 f4 ~ e5 ~@21]/2", // Dm C Dm Dsus4
  BD: "[~@2 g5@2 f5@2 g5@2 e5@2 f5@2 g5@8 d6@11 ~]/2", BE: "c6@4 ~ c6 b5 c6", BF: "a5@2 b5@2 ~@6 e5@5 ~, ~@2 c6@5 ~",
  BG: "e5@9 ~ b5@2 a5@2 b5@2", BH: "g5 a5 b5@4 [g4,b4]@2", BI: "[~@3 g5 ~@2 c6@2, c5, a4@29 ~@3, ~ f5]/2",
  BJ: "[g5,c6] g5@2 [g5,c6]", BK: "[g5,d6]@8 g5@7 ~", BL: "[~ e5 d5 e5 c5 d5 ~@6 g4@4, ~@6 g5@9 ~]/2",
  BM: "[~ c5 b4 c5 a4 b4 ~@6 [e3,g4]@4, f3@3 ~, ~@12 c5@19 ~]/2", // Em
  BN: "[~ f5 e5 f5 d5 e5 ~@4 g5@5 ~, a4 g4, ~@3 f5@2 ~@3]/2",
  BO: "[~@2 g5@2 f5@2 g5@2 e5@2 f5@2 ~@12 g4@7 ~, f4 e4 d4 ~, ~@6 g5@9 ~, ~@10 d6@5 ~]/2",
  BP: "[c6@8 ~@2 c6@2 b5@2 c6@2 a5@2 b5@2 ~@8 e5@3 ~, e4@3 a4, ~@5 c6@2 ~]/2", BQ: "e5@5 b5 a5 b5, b4",
  BR: "g5 a5 b5@4 b4@2, g4@12 g4 ~@3", BS: "[[a4,c5]@4 a5@9 g5@3]/2", BT: "f5 c6", BU: "c6@3 ~ d6@4 g5@8",
  BV: "[a4,c5]", BW: "[g4@9 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.34).pan(0.6)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note(`<
  ~@22 A ~@10 B@4 C@2 D@2 B@4 E@2 ~@6 F ~ G ~ H@2 I@2 ~@8 J ~@8 K L ~@14 K L ~@17 M@4 ~@4 F ~ G ~@9 N ~@3 J ~@8 K L ~@14
  K L ~@14 K ~@34 O@3
>`.pickRestart({
  A: "~@3 c5", B: "[c6 b5, e5]/4", C: "[~ d5, f5]/2", D: "[[c5,e5]@3 b4]/2", E: "[c5,f5]/2", F: "a4", G: "c5",
  H: "[c4,a4]/2", I: "[~ b3@15]/2", J: "c4", K: "~@14 f5 ~", L: "f5@3 ~@5", M: "[c5,e5,g5]/4", N: "~@5 b4@2 ~",
  O: "[~@2 [c5,e5,g5]@41 ~@5]/3", // C
})).s("gm_string_ensemble_1").gain(0.17).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@3 ~ B@4 C@3 ~ D@7 ~ E@5 ~@32 F@2 G@2 H I ~@2 F@2 G@2 H I ~@2 J@2 K L ~@32 M N O P@3 ~ Q ~@8 F@2 G@2 H I ~@2 F@2 G@2
  H I ~@2 J@2 K L ~@64 M N O ~ R@2 ~
>`.pickRestart({
  A: "[~@4 [c3,e3]@7 ~, ~@7 [c4,d4]@15 ~@2, ~@15 [f3,g3]@29 ~@4]/3", // C Csus2 Fsus2
  B: "[~@14 c4@21 ~@4 c3@17 ~@8, ~@4 e3@6 ~@2 e3@23 ~ g3@20 ~@8, ~@6 f3@29 d4@21 ~@8, ~@37 f3@20 ~@7, ~@19 e3@9 ~@4]/4",
  C: "[~@4 e3@2 f3@4 ~@4 c4@25 ~@9, ~@10 e3@29 ~@9]/3",
  D: "[~@37 c4@2 ~@4 e3@25 ~@10 c4@34, ~@4 e3@5 ~ e3@28 ~@30 e3@6 ~@2 e3@36, ~@6 f3@33 ~ f3@28 ~@2 f3@42, ~@14 c4@23 ~@75, ~@17 d4@17 ~@22]/7",
  E: "[~@4 e3@2 ~@8 c4@21 ~@14 c3@24 ~@7, ~@6 f3@29 ~@11 c4@26 ~@8, ~@12 e3@23 ~@12 g3@26 ~@7, ~@48 [e3,f3]@25 ~@7]/5", // Fmaj7
  F: "[~@2 e3 f3@2 ~@2 c4@9, ~@5 e3@11]/2", G: "[~@4 e3@2 f3@3 ~@11 b3@9 ~@3, ~@5 e3@10 ~]/2", H: "~@5 f2 g2 a2",
  I: "g2@7 ~",
  J: "[~@14 g3@4 ~@2 g3@2 ~@6 g3@3 ~, g2@8 ~@2 g2@6 ~@2 g2@7 ~ g2@5 ~, ~@4 g3@9 ~@19, ~@6 c4@7 ~ c4@6 ~@2 [c4,g4]@9 ~]/2", // C5
  K: "~@4 b3 ~ b3@4 ~@2 b3@3 ~, g2@4 ~ g2@3, ~@3 g4@4 ~", L: "[f2,a3,c4]@7 ~ [g2,b3,d4]@5 ~@3",
  M: "[c4,e4]@8 c3@2 [b2,b3,d4]@5 ~, c3@3 ~@5", N: "[a2,a3,c4]@8 ~@2 [g2,g3,b3]@5 ~",
  O: "f2@5 ~ f2@2, a3@15 ~, f3@8 ~@2 f3@5 ~", P: "[~@8 e3@11 ~@5, ~@7 d4@12 ~@5, ~@15 [c3,g3,c4]@22 ~@11]/3",
  Q: "~@2 e3 ~@4 c4, ~@3 f3@5, ~@3 e3", R: "[~ [c3,g3] e3@28 ~@2, [c4,d4] ~@15]/2",
})).s("gm_acoustic_guitar_steel").gain(0.23).pan(0.6)

// chords · synth brass 2
const synth_brass_2 = note(`<
  ~@17 A B C D A B C D E F G H I J K L M N O P Q R S T M N O P Q R U V E F G H I J K W M N O P Q R S T M N O P Q R ~@5 X
  ~@36 A B C D E F G H I J K W M N O P Q R S T M N O P Q R ~@5 X ~@68 Y@3
>`.pickRestart({
  A: "[g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~ [c4,e4] ~ [g3,c4,e4] ~@5", // C
  B: "[g3,c4,e4] ~ [c4,e4] ~@3 [c4,e4] ~ [g3,c4,f4] ~ [g3,c4,f4] ~@5", // C Csus4
  C: "[g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@5", // C
  D: "[g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~ [f3,b3,d4] ~ [f3,b3,d4] ~@5", // C Bdim
  E: "[g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~ [c4,e4] ~ [c4,e4] ~@3 [g3,c4] ~", // C C5
  F: "[c4,e4] ~ [c4,e4] g3 ~@2 [c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 c4 ~", // C
  G: "[g3,b3,e4] ~ [b3,e4] ~@3 [b3,e4] ~ [b3,e4] ~ [g3,b3,e4] ~@3 [g3,b3] ~", // Em E5 Em G
  H: "[g3,b3,e4] ~ [g3,b3,e4] ~@3 b3 ~ [g3,b3,e4] ~@5 [g3,b3,e4] ~", // Em
  I: "[f3,a3] ~ [f3,a3,c4] ~@3 [a3,c4] ~ [f3,a3,c4] ~ [a3,c4] ~@3 [f3,a3,c4] ~", // F Am F Am F
  J: "[b3,d4] ~ [b3,d4] ~@3 [f3,b3,d4] ~ [f3,b3,d4] ~@3 b3 ~ [f3,b3,d4] ~", // Bm Bdim
  K: "[g3,c4,e4] ~ [c4,e4] ~@3 [c4,f4] ~ [c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C F5 C
  L: "[g3,b3,d4] ~ [b3,d4] ~@3 [b3,d4] ~ [c4,e4] ~ [c4,e4] ~@2 [g3,c4,e4] ~@2", // G Bm C
  M: "[a3,c4,e4] ~ [a3,c4,e4] ~@3 [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~@3 [a3,c4,e4] ~", // Am
  N: "[c4,e4] ~ [a3,c4,e4] ~@3 [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~@3 [c4,e4] ~", // C Am C
  O: "[g3,b3,e4] ~ [g3,b3,e4] ~@3 [b3,e4] ~ [g3,b3,e4] ~ [g3,b3,e4] ~@3 [g3,b3,e4] ~", // Em E5 Em
  P: "[g3,b3,e4] ~ [g3,b3,e4] ~@3 [g3,b3,e4] ~ [g3,b3,e4] ~ [g3,b3,e4] ~@3 [g3,b3,e4] ~", // Em
  Q: "[a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 c4 ~", // F
  R: "[a3,c4,f4] ~ [a3,c4,f4] ~@3 [c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 [c4,f4] ~", // F F5 F F5
  S: "[g3,c4,e4] ~ [c4,e4] ~@3 [c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4] ~", // C
  T: "[g3,c4,e4] ~ [c4,e4] ~@3 [c4,e4] ~ d4@6 ~@2, ~@4 b3 ~@3", // C
  U: "[c4,d4,g4] ~ [c4,d4,g4] ~@3 [c4,d4,g4] ~ [c4,d4,g4] ~ [c4,d4,g4] ~@3 [c4,d4,g4] ~", // Csus2
  V: "[b3,d4,g4] ~ [b3,d4,g4] ~@3 [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~@5", // G
  W: "[b3,d4] ~ [b3,d4] ~@3 [b3,d4] ~ [b3,d4] ~ [b3,d4] ~@3 [b3,d4] ~", X: "c3@7 ~ d3@6 ~@2", Y: "[~ [c4,e4]@20 ~@3]/3",
})).s("gm_synth_brass_2").gain(0.19).pan(0.6)

// other · flute
const flute = note("<~@31 A B ~@22 A B ~@66 A B ~@91>".pickRestart({
  A: "f4@8 e4@7 ~", B: "d4 g4@7",
})).s("gm_flute").gain(0.24).pan(0.7)

// other · viola
const viola = note("<~@123 [f4@8 ~ e4@7] [g3@13 ~@3] ~@91>").s("gm_viola").gain(0.29).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@77 A B C D E F G H I J K L M N O P A B C D E F G H I J K L M N Q P R S T ~@33 A B C D E F G H I J K L M N O P A B C
  D E F G H I J K L M N Q P A B C D E F G H I J K L M N O P A B C D E F G H I J K L M N Q P R S T U ~@3
>`.pickRestart({
  A: "c3 ~ c3 ~@3 c3 ~ c3 ~ c3 ~@3 c3 ~", B: "c3 ~ c3 ~@3 c3 ~ c3 ~ c3@2 ~@4",
  C: "[c3,f3] ~ [c3,f3] ~@5 [c3,f3] ~ [c3,f3] ~@3 c3 ~", // F5
  D: "[c3,f3] ~ [c3,f3] ~@3 [c3,f3] ~ [c3,e3] ~ [c3,e3] ~@3 [c3,e3] ~", E: "d3 ~ d3 ~@3 d3 ~ d3 ~ d3 ~@3 d3 ~",
  F: "[g2,d3] ~ [g2,d3]@2 ~@2 [g2,d3] ~ [g2,d3] ~ [g2,d3] ~@3 [g2,d3] ~", G: "c3 ~ c3 ~@3 c3 ~ c3 ~ c3@2 ~@2 c3 ~",
  H: "b2 ~ b2@2 ~@2 b2 ~ b2 ~ b2@3 ~ b2 ~", I: "a2 ~ a2 ~@3 a2 ~ a2 ~ a2 ~@3 a2 ~",
  J: "a2 ~ a2 ~@3 a2 ~ a2 ~ a2 ~@3 e2 ~", K: "e2 ~ e2 ~@3 e2 ~ e2 ~ e2 ~@3 e2 ~", L: "e3 ~ e2 ~@3 e2 ~ e2 ~ e2 ~@5",
  M: "[c3,f3] ~ [c3,f3]@2 ~@2 [c3,f3] ~ [c3,f3] ~ [c3,f3]@2 ~@2 f3 ~", // F5
  N: "[c3,f3] ~ [c3,f3]@3 ~ c3 ~ [c3,f3] ~ [c3,f3]@3 ~ [c3,f3] ~", // F5
  O: "[d3,g3] ~ d3@3 ~ d3 ~ [d3,g3] ~ [d3,g3]@3 ~ d3 ~", P: "~@2 [g2,d3]@3 ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@4 ~@2",
  Q: "d3 ~ d3@2 ~@4 d3 ~ d3@2 ~@2 d3 ~", R: "c3@5 b2@3", S: "a2@5 g2@3", T: "f2@15 ~", U: "g2",
})).s("gm_distortion_guitar").gain(0.34).pan(0.3)

// chords · pad choir
const pad_choir = note("<~ A@8 ~@8 B@8 ~@88 C@4 ~@96 D@3>".pickRestart({
  A: "[c3,e3,f3,c4]/8", B: "[[c3,e3,f3]@127 ~]/8", C: "[c3,e3]/4", D: "[~@2 [c3,e3]@41 ~@5]/3",
})).s("gm_pad_choir").gain(0.2).pan(0.7)

// chords · piano
const piano = note(`<
  ~ A@4 B@3 C D ~@3 E F G ~ H@2 I@2 H@2 I@2 J@2 K@2 L M N O P@4 Q R S T P@4 U@2 V@2 J@2 K@2 L M N W P@4 Q R S T P@4 U@2
  X@2 Y@2 Z AA AB@2 AC AD AE AF AG AH@3 AI@2 AJ@2 AK AL AB@2 AC AD AE AF AG AH@3 AI@2 AM AN AO AL AP AQ AR AS H@2 I@2
  J@2 AT@2 AU AV N W P@4 Q R S T P@4 U@2 X@2 Y@2 Z AA AB@2 AC AD AE AF AG AH@3 AI@2 AJ@2 AK AL AB@2 AC AD AE AF AG AH@3
  AI@2 AM AN AO AL AB@2 AC AD AE AF AG AH@3 AI@2 AJ@2 AK AL AB@2 AC AD AE AF AG AH@3 AI@2 AM AN AO AL AP AQ AR AW AX@3
>`.pickRestart({
  A: "[~@38 [c5,c6]@3 ~@5 c6@9 ~@9, [c1,c2]@63 ~, ~@17 g6@12 d6@11 ~@24, ~@13 d5@7 ~@12, ~@4 b6 ~@3]/4", // C
  B: "[~@20 d5@4 ~@6 c5@2 b5@5 ~@4 b6@6 ~, c1@2 ~, ~ c2@7 ~@4, ~@13 d5@2 ~@9, ~@28 g4@19 ~]/3", C: "~@6 d6@2 ~ c6@6 ~",
  D: "~@5 d5@2 ~@2 b6@7", E: "~@13 d6@2 ~, ~@9 d5@7, ~@11 b5@4 ~", F: "~@7 d6", G: "~@2 g5@5 ~",
  H: "[[c2,g3,c4]@22 c2 ~@3 c2@5 ~, ~@3 [f3,c4]]/2", I: "[[c2,g3,c4]@23 ~ [c2,g3,b3]@6 ~@2]/2",
  J: "[~@3 [g3,e4]@12 ~, c2@29 ~@3, ~@4 c3@23 ~@5]/2", K: "[~@3 e4@13, e2]/2", L: "~@6 f4@9 ~, d2", M: "~@3 b3@5, g2",
  N: "[c4,f4]@8 e4@4 c3@3 ~, c3@11 ~@5", O: "d4@5 ~@5 g4@5 ~, ~@6 d4@9 ~",
  P: "[~@29 b3@2 ~, a2@32 g2@31 ~, ~@6 e4@31 ~ e4@25 ~, ~@27 c4@4 ~]/4",
  Q: "~@5 f3@3, f4@15 ~, f2@13 ~@3, a3@5 ~@3, ~@3 c4@3 ~@2", R: "~@10 g3@5 ~, [g2,f4], c4@13 ~@3",
  S: "[c3,c4,e4], g3@5 ~@3", T: "~@8 [b2,b3,d4]@7 ~",
  U: "[[a3,f4]@21 ~@3 a3@2 ~@2 a3@3 ~, f2@19 ~@3 f2@9 ~, ~@24 f4@7 ~, ~@26 c4@5 ~]/2", // Dm
  V: "[c4@10 ~@2 c4@4 b3@6 ~@2 d4 ~ d4@2 c4@2 b3 ~, g4@23 ~ g4@5 ~@3, g2@9 ~@2 g2@5, ~@10 g3@11 ~@3 g3@8]/2",
  W: "d4@7 ~ g3@7 ~, [b2,b3]@15 ~", // B
  X: "[c4@5 ~@9 c4 d#4, g4@11 ~ g4@4, g#2@14 ~@2 g#2@9 ~ g#2@6, ~@10 d#4@13 ~@9, ~@12 c4@9 ~ c4@5 ~@5]/2",
  Y: "[[c4,d4]@13 ~@13 g3@6, g2, g4@17 ~ g4@14, ~@14 c4@17 ~]/2", // Csus2
  Z: "~@12 g4@2 d4 ~, g4@5 ~@3, f2@4 ~ f2@2 ~, ~@3 d4@3 ~@2", AA: "[f2,c4,f4]@4 [g2,d4,g4]@3 ~",
  AB: "[[g3,e4]@7 ~@9 [g3,c4,e4]@6 c3@2 [e2,g3,c4,e4]@7 ~, c2@3 ~, ~@8 [g3,c4,e4]@7 ~@17, ~@12 c3@7 ~@13]/2", // C
// … 183 more lines

More by Zero