Strudelify
Futura cover art

1980 · Dalla

Futura

Dalla

KeyF majorTempo130 bpm
0:00/0:00
// Futura — Dalla
// 130 bpm, 2/4, key F 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 370 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/2)

// 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, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass
const bass = note(`<
  ~@54 A@4 B@8 C@4 D E@6 F@8 G@6 H@4 I@8 J@2 K@4 L@3 M N O@2 P@2 Q@8 R S@5 T@5 U@5 V@8 W X Y@2 Z AA AB@2 AC AD@2 AE AF@5
  AG@2 AH AI@3 AJ@4 AK AL AM AN AO@3 AP@2 AQ@4 AR@2 AS@2 AT AU AV AW@2 AX AY AZ BA@2 BB BC BD BE BF@2 BG BH@3 BI@2 BJ@2
  BK@2 BL@4 BM BN@2 BO@2 BP@5 BQ BR@2 BS BT@5 ~@8 BU BV@8 BW@4 BX@2 BY@2 BZ@8 CA CB CC@3 CD CE CF CG CH CI CJ CK@2 CL
  CM@2 CN@5 CO@4 CP@4 CQ@6 ~@15 CR CS@2 CT CU@2 CV CW CX CY CZ@5 DA DB DC@7 DD DE DF DG DH@4 DI DJ DK@8 ~
>`.pickRestart({
  A: "[~@7 a2@57]/4", B: "[~@8 g2@65 f2@26 ~@2 f2 ~@3 d2@23]/8", C: "[~@6 d2 ~@3 a1@26 ~@2 a1@2 ~@2 d2@22]/4",
  D: "~@7 d2 ~@3 g2@5", E: "[~@7 g2 ~@3 g2@12 g2@3 ~ c2@30 ~@3 e2@12 c2@24]/6",
  F: "[~@9 c2@2 ~@2 c2@16 d2@26 ~@2 db2@31 ~@2 db2@3 ~ c2@26 ~@2 c2@6]/8",
  G: "[~@9 c2@2 ~@4 c2@16 a2@26 ~@2 a2@3 ~ a2@19 ~@2 a2@3 ~ a2@8]/6", H: "[g2@19 ~ g2@3 ~ g2@40]/4",
  I: "[~ a2@65 g2@49 c2@13]/8", J: "[~@3 f1@26 ~@2 f1]/2", K: "[~@3 d2@31 ~@2 a1@26 ~@2]/4",
  L: "[a1 ~@3 d2@19 ~@2 d2@11 ~ g1@9 ~@2]/3", M: "~ g1 ~@3 g1@11", N: "~ c2@14 ~", O: "[~@2 c2 ~@3 c2@15 ~ e2@10]/2",
  P: "[~@2 c2@19 ~ c2@10]/2", Q: "[~@3 c2@2 ~@2 c2@8 db2@7 ~ d2@27 ~ d2@35 ~@2 c2@11 ~ c2@16 c2@6 ~@2 c2@2 ~@2]/8",
  R: "c2@3 ~@2 c2@7 ~ c2@3", S: "[~ c2@6 ~@2 f1@10 ~@2 f1@2 ~@2 f1@16 a1@10 ~@2 a1@2 ~@2 a1@14 ~@2 g1@7]/5",
  T: "[~@5 g1@2 ~@2 g1@15 c2@11 ~@2 c2 ~@3 c2@16 f1@13 ~@3 f1@7]/5",
  U: "[~ c2@4 db2@4 d2@10 ~@2 d2@2 ~@2 d2@16 a1@10 ~@2 a1@2 ~@2 a1@10 ~@2 a1@4 d2@7]/5",
  V: "[~@5 d2@2 ~@2 d2@16 c2@10 ~@2 c2@2 ~@2 c2@10 ~@2 c2@2 ~@2 c2@10 ~@2 c2@2 ~@2 c2@10 ~@2 c2@2 ~@2 c2@10 ~@2 c2@2 ~@2 c2@10 ~@2 c2@2 ~@2 c2@7]/8",
  W: "~@5 c2 ~@3 c2@7", X: "~ c2@6 ~@2 c2@7", Y: "[~@5 c2@2 ~@2 c2@10 ~ c2@2 ~@6 c2@2 ~@2]/2", Z: "c2@3 ~ c2@4",
  AA: "~@2 c2 ~ c2@4", AB: "~@3 c2@2 ~@2 c2@9", AC: "~ c2 ~@6", AD: "[~@6 d2@19 a1@4 bb1@3]/2", AE: "~ b1@13 ~@2",
  AF: "[~ b1@18 ~ d2@2 ~@6 d2@11 a1@4 bb1@3 ~ b1@18 ~@15]/5", AG: "[~@2 d2@19 a1@4 bb1@3 b1@4]/2",
  AH: "~@2 b1@2 a1 ~ a1@2", AI: "[g1@3 g1@3 ~ a1@5 ~@3 d2@3 ~@5 d2@11 a1@4 bb1@3 ~ b1@6]/3",
  AJ: "[~ b1@4 a1@3 ~ a1@4 g1@5 ~@2 g1@5 ~@3 bb1@8 ~@4 bb1 ~@2 bb1@2 ~@2 bb1@10 ~@2 a1@5]/4",
  AK: "~@2 a1 ~@3 a1@4 a2@6", AL: "~@2 a1@7 bb1@6 ~", AM: "~ bb1 ~@3 bb1@7 bb2@3 ~", AN: "bb1@7 ~ a1@5 ~@2 a1",
  AO: "[~@3 a1@5 ~@3 a1@4 a2@3 ~ a1@3 d2@6 ~@2 d2@11 a1@4 bb1@3]/3", AP: "[~ b1@6 ~@2 b1@4 a1@7 g1@5 ~@3 g1@4]/2",
  AQ: "[~@4 d2@4 ~@3 d2@11 ~ a1@4 bb1@3 b1@5 ~@3 b1@4 a1@2 ~@2 a1@3 g1@2 ~@2 g1@3 ~ e2@6 ~]/4",
  AR: "[~ d2@4 ~@3 d2@12 a1@4 bb1@4 b1@4]/2", AS: "[~@3 b1@4 a1@2 ~@2 a1@4 g1@6 ~ g1@4 a1@4 d2@2]/2", AT: "~@3 d2@5",
  AU: "~ a1@4 bb1@4 b1@5 ~@2", AV: "b1@2 a1 ~ a1@2 g1@2", AW: "[~@3 g1@4 a1@4 bb1@8 ~@4 bb1 ~@2 bb1@6]/2",
  AX: "~@2 bb2@3 ~ bb1@3 ~ a1@5 ~", AY: "~ a1 ~@3 a1@7 ~ a2@3", AZ: "~ a1@7 bb1@7 ~",
  BA: "[bb2@4 bb1@4 ~@3 bb1@3 ~ bb2@3 ~ bb1@3 ~ a1@9]/2", BB: "~@2 a1@2 ~@2 a1@7 ~ a2@2",
  BC: "~@5 bb1@10 ~, ~@2 a1@5 ~@9", BD: "~ bb1 ~@3 bb1@9 ~@2", BE: "bb1@13 ~@3", BF: "[bb1 ~@3 bb1@15 ~ a1@10 ~@2]/2",
  BG: "a1 ~ a1@6", BH: "[~@3 a1@9 ~@3 a1@2 ~@2 a1@16 bb1@9 ~@4]/3", BI: "[bb1 ~@3 bb1@15 ~ bb1@11 ~]/2",
  BJ: "[bb1 ~@3 bb1@15 ~@2 a1@11]/2", BK: "[~@2 a1 ~@3 a1@14 ~@3 a1@9]/2",
  BL: "[~@5 a1@2 ~@2 a1@18 bb1@12 ~@2 bb1@2 ~@2 bb1@15 ~@4]/4", BM: "bb1@11 ~@3 bb1@2", BN: "[~@3 bb1@19 ~ a1@9]/2",
  BO: "[~@6 a1@2 ~@3 a1@16 ~@5]/2", BP: "[a1@12 ~@3 a1@2 ~@3 a1@21 bb1@12 ~@4 bb1@2 ~@4 bb1@17]/5", BQ: "~ bb1@3",
  BR: "[~@5 bb1@2 ~@3 bb1@18 ~@4]/2", BS: "a1@13 ~@3", BT: "[~ a1@3 ~@2 a1@19 ~@4 a1@48 ~@3]/5", BU: "~@7 e2@4 f2@4 ~",
  BV: "[e2@4 f2@21 ~ c2@32 ~@2 g2@32 ~@2 c2@25 g1@5 gb1@4]/8", BW: "[f1@33 ~ a1@29 ~]/4", BX: "[a2@4 g2@27 ~]/2",
  BY: "[~@2 g2@2 ~@2 c2@15 ~@2 c2@8 ~]/2",
  BZ: "[a1@4 g1@4 gb1@4 f1@9 ~@4 f1@2 ~@2 f1@16 ~ a1@10 ~@2 a1@2 ~@2 a1@15 ~@2 g1@12 g2@16 ~ c2@8 e1@4 ~ f1@4 g1@3]/8",
  CA: "~ c2@8 g1@4 gb1@3", CB: "~@2 f1@9 ~@3 f1@2", CC: "[~@2 f1@10 ~@3 f1@3 ~ d2@9 ~@3 d2@2 ~@2 d2@10 ~@3]/3",
  CD: "d2@2 a1@5 ~", CE: "~ a1@2 ~@2 a1@10 ~", CF: "~ a1@2 ~@2 d2@9 ~@2", CG: "~ d2 ~ d2@5", CH: "~@7 g1@8 ~",
  CI: "~@3 g1 ~@3 g1@9", CJ: "~ c2@3", CK: "[~@4 c2@2 ~@3 c2@14 ~@2 e2@3 ~@4]/2", CL: "~@2 d2@4 c2@3 ~@5 bb1@2",
  CM: "[~@2 c2@19 ~@2 c2@2 ~@2 c2@5]/2", CN: "[~@3 c2@3 ~@6 d2@21 bb1@4 c2@5 db2@38]/5", CO: "[~ c2@52 db2@11]/4",
  CP: "[~@7 c2@57]/4", CQ: "[~@5 c2@24 ~@3]/6", CR: "~@13 c2@3", CS: "[~ ab1@4 g1@4 gb1@4 ~ f1@6 ~@2 f1@10]/2",
  CT: "~ f1@2 g1@2 a1@3", CU: "[~@3 a2@7 ~ a1@2 ~@2 a1@8 a2@3 ~ a1@4 ~]/2", CV: "g1@3 ~ g1@2 ~@2",
  CW: "g1@4 g2@3 ~ g1@3 ~ c2@4", CX: "~@5 c2@2 ~@2 c2@4 bb1@3", CY: "~ c2@4 g1@2 ~@2 g1@4 gb1@3",
  CZ: "[~@2 f1@6 ~@2 f1@11 ~ f1@8 a1@9 ~@4 a1@8 a2@3 ~ a1@3 ~ a1@4 g1@12 ~ g2@2 ~@2]/5",
  DA: "g2@3 ~ g1@2 ~@2 g1@2 ~@2 g1@4", DB: "c2@7 ~@2 c2@6 ~",
  DC: "[~ c2@3 ~ c2@8 g1@5 gb1@4 f1@6 ~@2 f1@10 ~@2 f1@3 ~ f1@4 ~ a1@7 ~ a1@3 ~ a2@8 a1@2 ~@2 a1@3 ~ a2@3 ~@2 a1@3 ~ g1@12 g2@8 g1@4]/7",
  DD: "a1@4 ~ c2@7 ~ c2@3", DE: "~ c2@7 ~ c2@2 ~@2 c2@3", DF: "~ g1@5 gb1@3 ~ f1@6", DG: "~@2 f1@8 f2@3 ~ f1@2",
  DH: "[~@2 f1@3 ~@2 a1@12 a2@8 a1@8 ab1@3 ~@2 g1@11 ~ g1@5 ~@3 g1@4]/4", DI: "a1@4 bb1@3 ~@2 c2@7",
  DJ: "~ c2@2 ~@2 c2@6 ~@2 c2@3", DK: "[~ g1@4 ~ gb1@4 f1@117 ~]/8",
})).s("gm_fretless_bass").gain(0.37)

// chords · piano
const piano = note(`<
  ~@6 A@8 B@2 C@2 D@4 E@2 F@2 G@4 H@4 I@2 J@7 K@2 L M@8 N@2 O@4 P@4 Q@4 R@7 S@5 T@5 U@6 V@4 W@2 X@4 Y@8 Z@7 AA@7 AB@8
  AC@4 AD@6 AE AF@7 AG@4 AH@6 AI@6 AJ@4 AK@7 AL@4 AM@8 AN@2 AO@7 AP@4 AQ@8 AR@4 AS@4 AT@8 AU AV@5 AW@6 AX@7 AY@5 AZ BA
  BB@6 BC@5 BD@2 BE@2 BF BG@8 BH@2 BI@2 BJ@2 BK@3 BL@6 BM@8 BN@4 BO BP@8 BQ@4 BR@5 BS@2 BT@5 BU@7 BV@7 BW@2 BX@8 BY@8 BZ
  CA CB@8 ~
>`.pickRestart({
  A: "[[bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4]@2, [c2,c3]]/8", // Bb C
  B: "[[bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4]@2]/2", C: "[[bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4]@2, ~@3 c2@5]/2",
  D: "[[bb3,d4,f4]@3 [bb3,d4,f4]@11 ~@2, c2@7 ~]/4", E: "[f2,a3,c4,f4]/2",
  F: "[c4@6 c4@6 [g3,c4]@3 ~, a2, g3@2 ~ g3@2 ~@3]/2", // C5
  G: "[[bb3,c4]@12 [f3,bb3,c4]@12 [f3,bb3,c4]@5 ~@3 [bb3,c4]@12 ~ [e3,bb3]@8 ~@4 [e3,bb3,c4]@6 ~, g2@32 e3@8 ~@5 c4@12 ~@7, f3@8 ~@24 c2@29 ~@3]/4", // Bbsus2 Fsus4 Bbsus2 Edim C7
  H: "[~ [a3,c4]@12 a3@12 [a3,c4,g4]@8 [a3,c4,g4]@12 ~ [c4,f4]@12 [a3,c4,f4]@6, ~ f2@44 ~ d2@18, ~ f3@32 ~@31, ~@13 f4@32 ~@19, ~@13 c4@8 ~@25 a3@8 ~@10]/4", // Am Am7 F5 F
  I: "[~ [c4,e4]@6 g3@4 g3@2 [g3,c4,e4]@3, ~ a2@15, ~ g3@4 ~@2 [c4,e4]@6 ~@3]/2", // C
  J: "[~@2 [gb3,c4,e4]@12 ~ [c4,e4]@8 ~@4 [gb3,c4,e4]@7 ~ [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@8 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@7 [g3,bb3,c4,e4] ~@7 [g3,bb3,c4,e4] ~@3, ~@2 d2@31 ~@2 g2@66 ~@11, ~@15 gb3@12 ~@73 e2@11 ~]/7", // Gbm7b5 C Gbm7b5 Bb C7
  K: "[~@4 [g3,bb3,c4,e4] ~@7 [c4,e4]@8 ~@8 c3@4, c2@5 [c2,c4,e4]@3, ~@3 c3@4 ~]/2", // C7 C
  L: "~@13 [g3,bb3,c4,e4]@3, ~ [g3,bb3,c4,e4]@12 ~@3, ~@9 c3@7", // C7
  M: "[~@17 d3@8 ~@20 f3@23 ~@6 bb3@16 ~@4 d4@4 [bb3,d4,f4]@4 [bb3,d4]@4 [bb3,d4,g4]@4 ~@18, ~@5 d2@64 ~ c2@45 ~@13, ~@5 bb3@28 a3@4 bb3@31 ~@34 f4@26, ~@9 a3@20 f3@12 a3@27 ~@60, ~@13 f3@12 d3@24 ~@21 [c3,e3,a3]@32 ~@26]/8", // Bb Gm Am
  N: "[~@7 [a3,c4,f4]@20 [a3,c4,f4]@5, ~@7 a2@25]/2", // F
  O: "[~@7 [g3,c4,f4]@12 ~ [c4,f4]@19 ~ [f3,bb3,c4]@20 [f3,bb3,c4]@4, ~@7 a2@33 g2@24, ~@5 g3@3 ~@8]/4", // Csus4 F5 Fsus4
  P: "[~@8 [e3,bb3,c4]@12 ~@13 e3@6 ~@2 [a3,c4,f4]@20 [a3,c4,f4]@3, ~@8 c2@30 ~@3 f2@23, ~@21 [bb3,c4]@18 ~@25, ~@21 e3@12 ~@31, ~@29 c3@12 ~@23]/4", // C7 F Bbsus2
  Q: "[~@5 a2@4 [a3,c4,f4]@12 ~@13 a3@4 c4@3 ~ [g3,c4,e4]@12 [g3,c4,e4]@10, ~@5 a3@2 ~@2 d2@29 ~@26, ~@22 [c4,f4]@17 ~@25, ~@11 a3@6 ~@15, ~@15 d3@6 a2@11]/4", // F C F5
  R: "[~@2 g3@4 ~@4 e4@4 gb3@8 ~@9 [gb3,c4,d4]@11 ~ [f3,bb3,c4]@12 f3@8 f3@8 f3@4 [f3,bb3,d4]@12 ~ [f3,bb3,d4]@19 ~ [e2,g3,bb3,c4]@4, ~@10 d2@31 ~@34 c2@30 ~@7, ~@14 e4@25 ~@16 c4@32 ~@25, ~@14 c4@13 d3@14 ~@2 c3@33 ~@36, ~@23 gb3@8 ~@24 bb3@20 ~@37]/7", // D7 Fsus4 Bb C7
  S: "[~@53 g3@5 ~@3 [d3,bb3,f4]@19, ~ g3@3 ~@6, ~@8 c2@20 c2@16 ~ c2@14 ~@21, ~@8 [bb3,c4]@16 [bb3,c4,e4]@16 ~ [bb3,c4,e4]@19 ~@20, ~@20 c3@28 ~ c3@11 ~@20]/5", // Bb Bbsus2 C7
  T: "[~ [bb3,d4,f4]@8 ~@25 db4@10 ~@26 a4@3 ~ [c3,db4,f4,bb4]@6, ~@9 [db3,bb3,f4]@37 [c3,c5]@27 ~@7, ~@9 db4@24 ~@21 c4@19 ~@7, ~@26 f3@18 ~@18 f4@11 ~@7]/5", // Bb Bbm C
  U: "[~@2 c3@12 ~ c3@14 ~@2 [a3,c4,f4]@12 [a3,c4,f4]@12 [a3,c4,f4]@7 ~ [g3,c4,f4]@12 ~ g3@8 g3@4 [g3,c4,f4]@7 ~, ~@2 [d4,f4,bb4]@26 ~@3 a2@30 ~@2 a2@32 ~, ~@19 [c4,f4]@3 ~@2]/6", // F Csus4 Bb F5
  V: "[[f3,bb3,c4]@12 f3@8 f3@4 [f3,bb3,c4]@7 ~ [e3,c4]@8 e3@4 ~ [e3,c4]@8 [e3,c4]@4 [e3,bb3,c4]@5 ~@2, g2@32 bb3@12 ~ bb3@12 ~@7, ~@6 [bb3,c4]@6 ~@4 c2@15 ~]/4", // Fsus4 C C7 Bbsus2
  W: "[~ [f3,c4]@12 ~@12 f3@5 ~@2, ~ a2@20 a2@10 ~, ~@13 c4@19, ~@13 f3@12 ~@7]/2", // F5
  X: "[~ [g3,c4]@12 ~@13 f3@8 [f3,bb3,c4]@12 ~@12 [f3,c4]@4 bb3@2, ~ a2@20 ~ a2@15 ~@9 bb3@16 ~@2, ~@7 [g3,c4]@9 ~ g2@10 g2@5, ~@23 [f3,c4]@6 ~@3]/4", // C5 Fsus4 F5 C5 F5
  Y: "[~@2 [e3,bb3,c4]@12 ~@13 e3@5 ~@27 f3@5 ~@3 a3@12 ~@13 d3@5 ~@3 [g3,c4,e4]@12 ~@12 g3@4, ~@2 c2@16 ~ c2@14 ~@2 f2@16 f2@16 d2@16 ~ d2@14 ~@2 a2@20 a2@8, ~@15 [bb3,c4]@19 ~ c4@20 c4@10 ~@2 c4@30 ~@15 [c4,e4]@16, ~@15 e3@12 ~@8 a3@12 [a3,f4]@19 ~@14 [a3,f4]@8 [a3,f4]@11 ~@13 g3@12 ~@4, ~@23 c3@12 ~@8 f3@16 ~@69]/8", // C7 C Bbsus2 C Dm
  Z: "[a2@4 [gb3,c4,e4]@12 ~@5 d2@16 [f3,bb3,d4]@12 ~@4 g2@12 ~@8 [bb3,d4]@8 ~@5 c2@14 ~@2 [e2,e3,bb3,c4]@10, ~@4 d2@16 ~@17 g2@16 ~@12 c2@21 ~@26, ~@17 [c4,e4]@19 ~@13 bb3@24 ~@39, ~@17 gb3@16 ~@16 d4@19 ~@44, ~@49 f3@12 ~@8 f3@12 ~ [f3,bb3,d4]@18 ~@12]/7", // Gbm7b5 Bb C7 C Bb
  AA: "[~@2 e3@8 ~@29 c3@15 ~@33 d2@25, ~@2 c2@20 c2@31 ~@2 [d2,bb4]@32 ~@25, ~@2 [bb3,c4]@16 [bb3,c4]@32 ~@9 a4@32 ~@21, ~@14 c3@24 ~@29 d4@41 ~@4, ~@18 e3@16 ~ e3@19 ~@9 f4@32 ~@17]/7", // Gm Bbsus2
  AB: "[~@4 [c3,e3,a3]@3 ~ c3@4 c3@12 ~@4 [d4,f4]@4 [bb3,d4,f4]@4 [bb3,d4,f4]@4 [bb3,d4]@4 [bb3,d4,g4]@4 [bb3,d4,g4]@4 ~@5 c3@12 ~@4 [a3,c4,f4]@12 [c4,f4]@12 f3@4 a3@3 ~ [g3,c4]@12 ~@8 a2@3, ~@8 [c2,e3,a3]@32 [c2,f4]@28 ~@5 f2@31 ~@24, ~@12 bb3@16 ~@25 [bb3,d4,g4]@16 ~@16 a3@16 ~@16 [g3,c4]@11, ~@24 c3@32 ~@49 a2@20 ~@3]/8", // Am Dm Bb Gm F F5 C5 Am …
  AC: "[~ [g3,c4]@6 ~@2 [f3,bb3,c4]@12 ~@12 [f3,c4]@7 ~ [e3,bb3,c4]@12 ~@8 c3@3, ~@9 g2@20 g2@13 ~@22, ~@21 bb3@16 ~@16 [e3,bb3,c4]@11, ~@21 [f3,c4]@12 ~@8 c2@16 c2@7]/4", // C5 Fsus4 F5 C7 F5
  AD: "[~ [e3,bb3,c4]@6 ~@26 f3@4 a3@3 ~ [a3,f4]@12 ~@12 c4@6 ~@2 [g3,c4,e4]@12 [g3,e4]@8 [g3,e4]@3, ~@9 [a2,c4]@20 a2@12 d2@16 d2@13 ~@26, ~@9 a3@12 [a3,f4]@17 ~@15 [a3,f4]@19 ~@24, ~@17 f3@16 ~@28 d3@11 ~ a2@23, ~@29 c4@9 ~@3 c4@24 ~@20 c4@11]/6", // C7 Dm C Am Dm
  AE: "~ c4@7 ~ [d2,gb3,c4,e4]@7", // D7
  AF: "[~@17 d4@5 ~@3 [bb3,d4]@12 ~@32 d4@8 ~@8 bb3@4 f3@8 ~@8 [c2,f3]@7, ~@5 [gb3,c4,e4]@19 ~ f3@16 c2@16 c2@24 c2@24 ~@7, ~@9 d2@13 ~@15 [a3,bb3]@12 c3@16 c3@24 c3@23, ~@13 d3@11 ~ c3@20 d4@8 [a3,bb3,d4]@8 [bb3,d4]@8 bb3@16 ~@4 [bb3,d4]@12 [bb3,d4]@11, ~@37 d4@8 f3@16 f3@12 ~@4 [f3,d4]@12 ~@8 f3@8 ~@7]/7", // Bb F5 Gbm7b5 Bbmaj7 Bb Dm
  AG: "[~@21 f3@8 ~@8 bb3@2 ~@2 [f3,bb3]@12 ~@7 f3@4, ~ f3@12 f3@4 c3@16 c2@23 c2@8, ~@5 [bb3,d4]@16 [bb3,d4]@18 ~@14 bb3@11, ~@5 f4@8 f4@25 ~@15 f3@7 ~@4, ~@9 c2@20 f3@10 ~@2 c3@23]/4", // Bb5 Bb
  AH: "[~@12 f3@4 ~@4 d4@8 ~@8 f3@2 ~@2 [g3,bb3,d4]@11 ~@16 f3@4 ~@8 c3@6 ~@11, c3@16 c3@22 ~@13 g3@8 d4@12 ~@25, ~@4 [g3,bb3]@12 f3@4 g3@8 [f3,d4]@4 g3@7 ~ f3@11 d4@5 c3@23 ~@17, ~@4 f3@8 d4@8 bb3@17 ~@14 bb3@8 f3@4 g3@8 ~@25, ~@8 c2@29 ~@3 c2@31 [c2,f3,g3,bb3,d4]@14 ~@11]/6", // Gm Dm Gm7
  AI: "[~@6 [c4,e4,g4]@11 [c4,e4,g4]@8 ~@4 [c4,e4,g4]@6 ~@2 [b3,d4,g4]@12 [b3,d4]@7 [b3,d4]@4 [b3,d4,g4]@4 b3@2 ~@2 [c4,e4]@4 [c4,e4]@4 [c4,e4,g4]@7 ~@4 [c4,e4,g4]@8 ~, ~@6 d3@31 b2@31 g4@8 ~@20, ~@49 g4@11 ~@8 d3@28]/6", // C G Bm G C
  AJ: "[~@3 [d4,g4]@12 [b3,d4]@7 ~@4 [b3,d4,g4]@6 ~@2 [c4,e4]@11 [c4,e4]@8 ~@4 [c4,e4,g4]@6 ~, ~@3 b2@31 g4@7 ~@4 g4@11 ~@8, ~@3 b3@8 ~@4 g4@11 ~@8 d3@30]/4", // G5 Bm G C
  AK: "[[b3,g4]@7 ~@5 b3@3 ~@4 b3@4 [b3,d4,g4]@6 ~@2 [c4,e4]@11 [c4,e4,g4]@8 ~@4 [c4,e4,g4]@6 ~ [d4,g4]@11 ~ [d4,g4]@11 [b3,d4,g4]@5 ~@3 [bb3,d4,f4]@11 ~ [bb3,d4,f4]@8, b2@31 g4@7 ~@23 b2@31 bb2@20, d4@12 [d4,g4]@11 ~@8 d3@30 b3@8 ~@4 b3@8 ~@31]/7", // Em G C G5 G Bb G5
  AL: "[~@3 [bb3,d4,f4]@6 ~@2 [g3,db4,e4]@11 [db4,e4]@16 ~@3 [bb3,d4,f4]@11 ~ [bb3,d4,f4]@11, ~@11 a2@31 ~@22, ~@22 g3@8 ~@11 bb2@23]/4", // Bb Dbdim Dbm Bb
  AM: "[[f3,bb3,d4,f4]@6 ~@2 [g3,db4,e4]@11 [db4,e4]@11 ~ [g3,e4]@5 ~@3 e4@11 [a3,e4]@8 a3@3 [a3,c4,e4,g4]@6 ~@2 [d4,g4]@11 [b3,d4]@8 b3@4 [b3,d4,g4]@6 ~@2 [c4,g4]@11 [c4,e4,g4]@8 ~@4 [c4,e4,g4]@5, ~@8 a2@30 [a3,c4,g4]@11 ~ [c4,g4]@11 ~@8 b3@8 ~@3 g4@11 ~@9 d3@28, ~@19 g3@8 ~@11 d3@31 b2@31 e4@7 ~@21]/8", // Bb Dbdim Dbm C A5 Am7 G5 Bm …
  AN: "[~@2 [b3,d4,g4]@4 [b3,d4,g4]@8 [d4,g4]@7 [d4,g4]@8 [b3,d4]@2 ~, ~ b2@15, ~@14 b3@3 ~@4 b3@4 ~@7]/2", // G G5 Bm
  AO: "[~ c4@11 [c4,g4]@11 ~ [c4,e4,g4]@6 ~ [b3,d4]@11 ~ [d4,g4]@11 [b3,d4,g4]@6 ~@2 [c4,e4]@11 ~ [c4,e4,g4]@8 ~@3 [c4,e4,g4]@6 ~@2 [b3,d4,g4]@11 [b3,d4,g4]@8, ~ d3@30 g4@8 ~@4 b3@7 ~@12 g4@7 ~@43, ~ g4@7 ~@4 e4@8 ~@11 b2@31 d3@30 ~ b2@19]/7", // C5 C Bm G5 G C G
  AP: "[~@3 [b3,d4,g4]@5 ~@3 [bb3,d4,f4]@11 ~ d4@7 d4@4 [bb3,d4,f4]@7 ~ [g3,db4,e4]@11 g3@8 g3@3, ~@11 bb2@29 ~@2 a2@22, ~@23 [bb3,f4]@11 ~@19 [db4,e4]@11]/4", // G Bb Dbdim Bb5 Dbm
  AQ: "[~ [db4,e4]@6 ~ [bb3,d4,f4]@12 d4@11 d4@4 f3@2 ~@2 [db4,e4]@11 g3@8 g3@4 [g3,db4,e4]@5 ~@2 [bb3,d4,f4]@31 f4@12 [bb3,f4]@16, ~ g3@3 ~@4 bb2@30 ~ a2@30 bb2@59, ~@20 [bb3,f4]@16 ~@3 g3@8 ~@3 [db4,e4]@12 ~@50 d4@11 ~@5, ~@14 f3 ~]/8", // Dbm Bb Dbm Dbdim Bb Bb5 Dbm
  AR: "[~@4 [g3,e4]@31 [g3,e4]@12 [g3,e4]@8 [g3,e4]@9, ~@4 a2@55 ~@5, ~@4 db4@42 ~ [db4,g4]@17]/4", // C Dbdim
  AS: "[~@4 [bb3,g4]@12 bb3@12 bb3@8 [bb3,g4]@12 ~@13 d4@3, ~@3 bb2@61, ~@3 d4@32 ~ d4@25 ~@3, ~@4 g4@5 ~@3 [bb3,g4]@4]/4", // Eb
  AT: "[~@5 g3@21 g3@13 [db4,e4]@13 ~ [db4,e4,g4]@20 ~@2 [bb3,g4]@13 ~@24 bb3@9 [bb3,g4]@7, ~@5 a2@70 [bb2,d4]@53, ~@5 [db4,e4]@32 ~@2 g3@26 ~@24 g4@32 ~@7]/8", // Dbm Dbdim Eb Bb Dbm
  AU: "~@3 [bb3,d4,g4]@13", AV: "[~@2 g3@3 ~@2 [db4,e4]@40 ~@26 g4@7, ~@7 a2@73, ~@7 g3@20 ~@21 [g3,db4,e4]@32]/5",
  AW: "[~@9 [d4,g4]@42 ~ d4@40 ~@4, ~@3 bb2@29, ~@9 bb3@35 ~@8 g4@37 ~@7, ~@26 bb3@17 ~@5]/6", // G5
  AX: "[~ a2@93 [a3,c4,f4]@9 [a3,c4,f4]@9, g3@47 ~@47 a2@18, ~ e4@75 ~@36, ~ db4@65 ~@46]/7", // F
  AY: "[[a3,c4,f4]@9 [a3,c4,f4]@3 ~ [g3,c4,f4]@13 ~ [g3,c4,f4]@8 [g3,c4,f4]@9 [g3,c4,f4]@3 ~@2 [f3,bb3,c4]@13 [f3,bb3,c4]@9 [f3,bb3,c4]@8 [f3,bb3,c4], ~@13 a2@31 a2@32 ~@4, ~@49 g2@31]/5", // F Csus4 Fsus4
  AZ: "~ [c2,e3,bb3,c4]@3", BA: "~@5 [c2,e3,bb3,c4]@3, ~ [e3,bb3,c4]@9 ~@6, ~@5 c3@11",
  BB: "[~@3 [c3,bb3,c4]@2 ~@2 [a3,c4,f4]@13 [a3,c4,f4]@9 [a3,c4,f4]@8 [a3,c4,f4]@3 ~@2 [g3,c4,f4]@12 [g3,c4,f4]@9 [g3,c4,f4]@9 [g3,c4,f4]@2 ~@2 [f3,bb3,c4]@13 [f3,bb3,c4]@7, ~@3 e3 ~@3 f2@33 ~@2 a2@33 ~ g2@20]/6", // C7 F Csus4 Fsus4
  BC: "[~ [f3,bb3,c4]@9 [f3,bb3,c4]@2 ~@2 [e3,bb3,c4]@13 [e3,bb3,c4]@8 [e3,bb3,c4]@9 [c3,e3,c4]@7 ~ [a3,c4,f4]@9 [a3,c4,f4]@8 [a3,c4,f4]@9 [a3,c4,f4]@2, ~@14 c2@21 c2@14 ~@3 f2@27 ~, ~@27 c3@17 ~@36]/5", // Fsus4 C7 C F
  BD: "[~@2 [g3,c4,f4]@13 [g3,c4,f4]@8 [g3,c4,f4]@9, ~ a2@15]/2", // Csus4
  BE: "[[g3,c4,f4]@2 ~@2 [f3,bb3,c4]@13 [f3,bb3,c4]@8 [f3,bb3,c4]@7, ~ g2@7]/2", // Csus4 Fsus4
  BF: "~@2 [f3,bb3,c4]@3 ~ [c2,e3,bb3,c4]@10", // Fsus4 C7
  BG: "[~@3 [e3,bb3,c4]@9 [e3,bb3,c4]@8 [e3,bb3,c4]@6 ~@27 [c4,f4]@5 a3@2 ~@2 [g3,c4,f4]@12 ~@13 [g3,c4,f4]@5 ~@3 [bb3,c4]@12 ~@9 f3@8 ~@4, ~@3 c3@23 ~@2 [a3,c4,f4]@12 ~ [a3,c4,f4]@12 a3@4 ~@17 [g3,c4,f4]@12 ~@21 [bb3,c4,f4]@18 ~@3, ~@12 c2@14 ~@2 f2@17 f2@15 ~@2 a2@21 a2@12 g2@33, ~@37 f3@12 f3@9 ~@37 f3@21 ~@12]/8", // C7 F5 Csus4 Bbsus2 F Csus4 Bbsus2
  BH: "[~@13 e3@4 ~@8 c3@7, c2@17 c2@14 ~, [e3,bb3]@12 ~ [bb3,c4]@8 [e3,bb3,c4]@10 ~, ~@9 c3@16 ~@7]/2", // Edim Bbsus2 C7
  BI: "[~@2 a3@12 ~@13 c4@5, ~@2 c4@25 ~@5, ~ f2@8 f2@7, ~@7 [a3,f4]@9, ~@11 c3@5]/2", // Dm
  BJ: "[~@3 [a3,f4]@12 ~@13 [a3,f4]@4, ~@3 d4@29, ~@3 d2@13 a3@8 d3@8, ~@15 f4@4 d2@13, ~ c4]/2", // Dm
  BK: "[~@4 [g3,c4]@12 ~ [g3,c4]@8 [g3,c4,e4]@10 ~@3 [d2,gb3,c4,e4]@10, ~@4 a2@33 ~@11, ~@4 e4@21 ~@23, ~@17 g4@18 ~@13]/3", // C5 C D7
  BL: "[~@14 gb3@5 ~@4 [bb3,d4]@12 ~@8 f3@4 ~ c3@5 ~@3 [g3,bb3]@12 ~@13 [g3,bb3,d4]@6 ~@2 [e2,e3,bb3,c4]@7, ~@2 c4@19 ~@14 [bb3,d4,f4]@18 ~@15 [g3,bb3,d4]@12 ~@16, ~@2 [gb3,e4]@12 ~@9 f3@20 ~@13 f3@30 ~@10, ~@6 d2@13 ~@4 g2@16 g2@14 ~@3 c2@17 c2@15 ~@8, ~@10 d3@11 ~@56 c3@10 ~@9]/6", // Bb Gm C7 Bb Gm Gb7
  BM: "[~@6 e3@6 ~@10 e3@4 ~@5 e3@4 ~@12 c3@11 ~@2 [a3,bb3,d4,f4]@13 ~@8 d3@5 a3@4 [db2,db3,bb3,db4]@38, ~@6 c2@21 c2@16 c2@14 ~@3 d2@17 d2@11 ~@40, ~@6 [bb3,c4]@16 [bb3,c4]@17 [e3,bb3,c4]@12 ~@22 [bb3,d4,f4]@18 ~@37, ~@18 c3@29 ~@26 a3@13 ~@4 f4@17 ~@21]/8", // Bbmaj7 Gb Bbsus2 C7 Bb
  BN: "[~ [f3,a3]@13 ~@4 a3@11 ~@2 [f3,bb3,db4]@9 [f3,bb3,d4]@11 ~@13, ~ c3@52 ~@11, ~ c4@17 ~@46]/4", BO: "~@7 a3@9",
  BP: "[~@4 a3@4 ~ [f3,a3,c4]@9 f3@2 ~@2 [f3,bb3,db4]@8 ~ [f3,bb3,d4]@13 ~ bb3@16 ~@2 a3@13 ~@5 [a3,f4]@11 ~@2 [f3,bb3,db4]@8 ~@2 [f3,bb3,d4]@11 ~@2 [bb3,c4]@11, ~@45 db4@13 ~@5 c4@27 ~@38]/8", // F Bbm Bb Dm Bbm Bb Bbsus2
  BQ: "[~@7 f4@18 f4@12 ~ g3@9 ~@9 [g3,f4]@8, ~@7 a2@57, ~@7 c4@30 ~ c4@26]/4", // G7
  BR: "[~@5 g3@4 ~@9 f3@4 ~ bb3@4 f3@9 f3@9 f3@4 ~@27 bb3@4, ~ c4@8 [bb3,c4]@13 ~@5 [bb3,c4]@18 [bb3,c4]@17 c4@18, ~@14 g2@31 ~@4 c2@13 e3@5 c2@13, ~@29 c3@9 ~@2, ~@62 bb3@13 ~@5]/5", // Bbsus2
  BS: "[e3@2 ~@2 f4@13 ~@9 c4@6, ~ a2@7, ~@17 [a3,f4]@15]/2", // Dm
  BT: "[~@7 g3@9 ~@17 g3@4 ~@13 f3@4 [f3,c4]@9 f3@4 [f3,bb3,c4]@5 [bb3,c4]@4 [c2,e3,bb3,c4]@4, ~@7 a2@35 g2@34 ~@4, ~ f4 ~@2, ~@20 g3@13 ~@39 e3@2 ~@6, ~@29 c4@14 ~@11 bb3@13 ~@13]/5", // F5 Fsus4 Bbsus2 C7
  BU: "[~@5 [e3,bb3,c4]@8 [bb3,c4]@9 [e3,bb3,c4]@4 ~@4 [a3,c4,f4]@8 a3@8 a3@4 [c4,f4]@7 ~@10 g3@4 g3@8 g3@4 [c4,f4]@8 ~@9 f3@4 [f3,bb3,c4]@8, ~@5 c3@17 c3@7 ~@30 g3@8 ~@16 g3@4 ~@4 f3@8 ~@13, ~@13 c2@13 ~@4 f2@33 a2@33 g2@16, ~@13 e3@4 ~@21 [c4,f4]@12 a3@4 ~@5 [c4,f4]@12 [c4,f4]@12 ~@8 [bb3,c4]@13 ~@8]/7", // C7 Bbsus2 C7 F F5 Fsus4 F5 Bbsus2
  BV: "[f3@4 [f3,bb3,c4]@7 ~ bb3@8 ~ e3@4 [e3,bb3]@4 ~@12 c3@5 ~@8 a3@4 [a3,c4]@8 a3@4 [a3,f4]@4 ~@13 [g3,c4,f4]@4 [g3,c4]@8 c4@4 [c4,f4]@8 bb3, ~@12 c2@21 c2@12 ~@5 f2@33 ~@29, ~@12 c4@12 ~ c4@13 ~@8 [c4,f4]@12 f4@12 ~@21 f4@12 ~@9, ~@12 e3@2 ~@11 c3@16 ~@42 a2@29, ~@29 e3@9 [e3,bb3,c4]@8 a3@8 ~@16 c4@8 [g3,c4,f4]@8 ~@17 g3@4 ~@5]/7", // Fsus4 Edim Am Dm Csus4 C5 F5 C7 …
  BW: "[f3@2 ~@10 bb3@4 bb3@4 f3@4 [f3,c4]@7 ~, c4@3 c4@3 bb3 ~, ~ g2@7, ~@3 f3@2 ~@3]/2", // F5
  BX: "[~ e3@2 ~@2 e3@4 [e3,c4]@8 ~@8 [e3,bb3,c4]@4 ~ [e3,bb3,c4]@3 ~ b3 ~@7 a3@4 a3@4 ~@8 [a3,f4]@8 ~@9 g3@4 [g3,c4]@8 g3@4 ~ g3@3 g3@4 ~@9 f3@4 bb3@9 [f3,bb3]@3 [f3,bb3,c4]@4, ~ c2@32 ~ [a3,c4]@8 ~@4 [c4,f4]@12 c4@4 ~@5 [c4,f4]@12 f4@13 [c4,f4]@8 ~@12 c4@12 ~@4, ~ [bb3,c4]@8 bb3@4 ~@4 [e3,bb3,c4]@8 ~@9 f4@12 ~@21 g3@8 ~@25 [f3,bb3,c4]@8 ~@4 f3@4 ~@12, ~@21 c3@15 ~@2 f2@16 f2@32 ~@18 g2@24, ~@71 a2@33 ~@24]/8", // C C7 Dm C5 Bb5 Fsus4 Am F5 …
  BY: "[bb3@3 ~@2 [bb3,c4]@8 [e3,bb3,c4]@4 [e3,bb3]@4 e3@4 ~ [e3,bb3,c4]@3 ~@9 a3@3 ~@5 a3@4 [a3,c4,f4]@13 [c4,f4]@8 ~@8 [g3,c4]@4 [g3,c4]@8 g3@4 [g3,c4,f4]@8 ~ [g3,c4,f4]@3 ~@5 f3@4 f3@8 ~ f3@3, ~@5 c2@21 c2@12 ~@4 f2@33 ~@33 g2@20, ~@5 e3@2 ~@10 c3@16 c3@32 ~@10 a2@34 ~@19, ~@17 c4@8 ~@4 [bb3,c4]@8 ~ [c4,f4]@12 ~@13 a3@3 ~@5 [g3,c4]@8 ~@4 f4@12 ~@33, ~@15 e3@4 ~@39 [bb3,c4]@6]/8", // Bbsus2 C7 Edim C7 F F5 C5 Csus4 …
  BZ: "[f3,c4]@7 ~@2 e3@2 ~@2 e3@3, bb3@4 ~@5 [c2,bb3,c4]@7", // F5 C7
  CA: "~ e3@4 bb3@8 [c2,e3]@3, ~@5 [c3,c4]@11, ~@5 e3@4 ~@7", // C
  CB: "[~ e3@4 ~@9 f2@84 ~@30, ~ [bb3,c4]@8 ~ [f3,a3,c4]@118, ~@6 c3@9 ~@113]/8", // Bbsus2 F
})).s("gm_piano").gain(0.48).pan(0.4)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@24 A B C ~ D E ~ F ~ G H ~@2 I ~@5 J@2 K@2 ~@2 L@2 M@4 ~ N ~ O ~ P ~@7 Q ~@5 R ~@2 S@2 ~@14 T ~@11 U@2 V ~ W ~@2 X@2
  Y@2 Z ~@3 AA@3 ~ AB ~@4 AC ~@3 AD ~ AE ~@2 AF@2 ~ AG ~@3 AH@3 ~@5 AI ~ AJ ~@4 AK ~@3 AL@2 AM AN AO AP@2 AQ AR AS AT
  AU@2 AV@2 AW ~ AX@2 AY AZ BA BB BC ~ BD BE BF BG BH AQ BI ~ BJ ~@3 BK ~ BL@2 BM ~ BN BO ~@12 BP BQ@2 ~@3 BR@2 ~@30 AB
  ~@14 BS ~ BT ~ BU@2 ~ BV ~ BW BX@2 ~ P BY ~ BZ@2 CA CB ~@4 CC@2 ~ CD CE@8 CF@2 CG@3 ~ CH ~ CI CJ@8 CK BT ~ G ~ A ~ CL
  CM@2 ~ CN ~ CO CP CQ CR ~ CS CT@2 CU CV CW CX CY ~@2 CZ DA ~@2 AD DB DC ~@8
>`.pickRestart({
  A: "~@2 g3 ~", B: "~ g3 ~@2", C: "~@2 f3 ~", D: "~@2 e3 ~", E: "~@5 [e3,bb3]@4 ~@7", F: "~@5 c4@4 ~@7",
  G: "~@3 a3@2 ~@3", H: "~@5 g3@2 ~", I: "~@7 [c4,e4]@4 ~@5", J: "[~@3 [g3,bb3]@2 g3@2 g3, ~@5 bb3@3]/2",
  K: "[~@5 c2@15 ~@12]/2", L: "[~@2 d3@19 ~@11]/2", M: "[~@5 [bb3,d4,f4]@2 [bb3,f4]@2 ~@6 [bb3,d4,g4]@12 ~@5]/4",
  N: "~@3 g3@2 ~@11", O: "g3@5 ~@11", P: "f3 ~@3", Q: "~@2 e4@7 ~@7", R: "~@4 c3@7 ~@5", S: "[g3@5 ~@3]/2",
  T: "~@2 c4 ~", U: "[~@11 f3@20 ~]/2", V: "f3 ~@7", W: "c4@3 ~@13", X: "[~@13 f3@6 ~@13]/2", Y: "[~@14 c3@5 ~@13]/2",
  Z: "~@5 e3@3", AA: "[~@15 d3@32 ~]/3", AB: "~@3 bb3", AC: "~ [c4,f4]@5 ~@10", AD: "~@5 bb3@2 ~@9", AE: "~@5 e3 ~@10",
  AF: "[f3@20 ~ f3 ~@10]/2", AG: "~@5 g3@3 ~@8", AH: "[~@6 f3 ~@5, ~@13 a3@32 ~@3]/3", AI: "[f3,bb3] ~@3",
  AJ: "~@4 g2@3 ~@9", AK: "~@9 [c4,e4,g4]@4 ~@3", AL: "[~@3 [c4,e4,g4]@4 ~@8 [c4,e4]@2 ~@10 b3@4 ~]/2",
  AM: "~@3 [b3,d4]@2 ~@2 b3, ~@14 g4 ~", AN: "~@9 g4@4 ~@3", AO: "~@5 [c4,e4]@4 ~@7",
  AP: "[~@8 [b3,g4]@4 ~@3 b3@4 ~@8 b3@2 ~@3]/2", AQ: "~@3 g4@2 ~@3", AR: "~ [c4,e4,g4]@2 ~@5", AS: "~@5 b3@4 ~@7",
  AT: "~ b3@3 ~@12", AU: "[~@15 [bb3,d4]@4 ~@13]/2", AV: "[~@14 g3@4 g3@5 ~@9]/2", AW: "~@13 f3@3",
  AX: "[~@11 g3@4 db4@6 ~@11]/2", AY: "~@10 e4@3 ~@3", AZ: "~ a3@2 ~@10 b3@3", BA: "~@2 d4 ~", BB: "b3@2 ~@9 e4@4 ~",
  BC: "~@7 [c4,e4,g4]@4 ~@5", BD: "~ b3@4 ~@4 b3@4 g4 ~@2", BE: "~@2 g4 ~, ~ e4@11 ~@4", BF: "~@4 e4@4 ~@4 g4 ~@3",
  BG: "~@7 g4@4 ~@5", BH: "~ b3@2 ~@2 b3 ~@2", BI: "~ [c4,e4,g4]@4 ~@11", BJ: "b3@3 ~@4 b3 ~@8", BK: "~@2 g3 ~@5",
  BL: "[~@7 g3@2 ~@7]/2", BM: "~ g3 ~@6", BN: "~ [bb3,d4]@3", BO: "~@3 d4, ~ f3", BP: "~@2 g3@5 ~@9",
  BQ: "[~@9 bb3@23]/2", BR: "[~@11 g3@20 ~]/2", BS: "~@6 f3 ~", BT: "~ e3@4 ~@11", BU: "[~@15 a3@2 ~@15]/2",
  BV: "c4 ~@7", BW: "~ bb3@2 ~@13", BX: "[~@14 e4@5 ~@13]/2", BY: "c3@3 ~", BZ: "[~@14 e3@8 ~@5 e3@4 ~]/2",
  CA: "~@3 e3@4 ~@9", CB: "~@3 [e3,bb3,c4]@6 ~@7", CC: "[~@14 [f3,a3]@4 [f3,c4]@9 f3@2 ~@3]/2",
  CD: "~@5 [db3,f3,bb3,db4]@11", // Bbm
  CE: "[~@16 f3@9 ~@36 f3@13 f3@2 ~@12 f3@4 f3@14 [f3,c4]@3 ~@19, ~@7 c3@121, ~@7 c4@18 ~@67 a3@5 ~@31]/8", // F5
  CF: "[~@5 e3@14 ~@13]/2", CG: "[~@4 a3@4 ~@5 f3@5 a3@3 ~@10 g3@4 ~ g3@4 ~@8, f3@13 ~@35, ~@3 a3@3 ~@10]/3",
  CH: "~@7 [f3,c4]@4 ~@5", CI: "~@5 e3@4 ~ e3@4 ~@2",
  CJ: "[~@12 c3@8 ~@9 c4@13 ~@4 f4@4 ~ g3 ~@12 [g3,f4]@4 ~@17 g3@2 ~@3 bb3@12 ~@9 c4@4 ~@13, ~@7 e3@9 ~@9 a3@8 ~@22 a3@31 ~@42, ~@59 c4@17 ~@52]/8", // G7
  CK: "[e3,c4] ~@3", CL: "bb3 ~@3", CM: "[~ e3@4 bb3@4 ~@4 bb3@9 ~@10]/2", CN: "~@2 c4@4 ~@4 [a3,f4]@3 ~@3",
  CO: "~@3 g3@4 ~@5 g3@4", CP: "~ f3 [f3,bb3] ~", CQ: "~@4 bb3@4 ~@4 bb3@3 ~", CR: "~@13 bb3@3", CS: "~@5 c4@2 ~",
  CT: "[~@2 a3@4 a3@4 ~@5 c4@3 ~@14]/2", CU: "~@7 c4@4 ~@5", CV: "~@3 [bb3,c4]", CW: "~ f3 ~@2",
  CX: "~ f3@2 ~@6 e3@4 ~@3, c4@3 ~@13", CY: "~@5 bb3@4 ~@7", CZ: "~ a3@2 ~@5", DA: "~@11 c4@4 ~",
  DB: "~ [bb3,c4]@4 ~@4 e3@4 bb3@3", DC: "~@3 e3@2 ~@3",
})).s("gm_piano").gain(0.24).pan(0.4)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@38 A B C@3 D@4 ~@23 E F@2 G@2 ~@11 H@8 ~@17 I J K L@6 ~@23 M N O P O Q R S T U V W X Y Z@2 AA AB AC AD AE AF AG AH
  AI AJ AE AG AK@2 AC AL@7 AM@2 AN AC AD AO AP AH AC AD AQ AG AH AR@2 AD AS@3 AT AU@4 AV@2 AW@8 AX@7 ~@20 AY@5 AZ@8 BA@5
  BB@4 BC@5 ~@16 BD BE BF BG@2 BH@8 ~@30 BI@2 BJ@2 BK@6 BL@3 BM@6 BN@8 BO@2 BP@4 BQ@7 ~@2
>`.pickRestart({
  A: "~@3 a4@4 bb4@3 ~ [d4,f4,bb4] ~@3 d4, ~@3 [d4,f4]@7 ~@6", B: "~@3 [d4,f4,bb4]@7 ~ [d4,f4,bb4] ~@3 d4",
  C: "[~@3 [d4,f4,a4] ~@3 d4 ~@3 a4@4 bb4@20 ~ [bb3,c4,e4]@10 ~@2, ~@11 [d4,f4]@25 ~@12]/3", // Dm C7 Dm
  D: "[[bb3,c4,e4]@10 ~@2 [bb3,c4,e4]@41 ~@11]/4", E: "~@11 [f3,bb3,c4]@5",
  F: "[~@3 [f3,bb3,c4] ~@3 [f3,bb3,c4] ~@3 [f3,bb3,c4]@9 ~@3 [f3,bb3,c4]@9]/2", // Fsus4
  G: "[~@3 [f3,bb3,c4] ~@3 [f3,bb3,c4] ~@4 [f3,bb3,c4]@14 ~@6]/2", H: "[~@15 f5@24 c5 ~@3 f5@32 ~ c5@37 ~@15]/8",
  I: "~@5 [bb3,c4,d4,g4]@6 ~@2 g3 ~@2", J: "~ g3 ~@3 [bb3,c4,d4,g4]@7 ~ g3 ~@2", K: "~ [bb3,c4,d4,g4]@14 ~",
// … 225 more lines

More by Dalla