Strudelify
Golden Brown cover art

La Folie

Golden Brown

The Stranglers

KeyD♭ majorTempo120 bpm
0:00/0:00
// Golden Brown — The Stranglers
// 120 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 4 harpsichord (copy of ch 3 harpsichord)
// note: Full arrangement: all 111 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass
const bass = note(`<
  A@3 B@2 C D@3 E@3 F G H@8 I J K@5 L@6 M@2 N O P@8 Q@2 R@2 S@8 T@3 F G U@6 V W@2 X Y@3 Z AA@8 AB@2 AC AD@8 AE AF AG
  AH@8 AI@3
>`.pickRestart({
  A: "[~@30 bb2@15 f2@15 ~ gb2@15 db2@20]/3", B: "[bb2@15 ~ f2@15 gb2@15 db2@18]/2", C: "~@3 bb2@15 f2@14",
  D: "[~ gb2@15 db2@20 ~ bb2@15 f2@15 ab2@15 ~ gb2@13]/3",
  E: "[~@2 db2@5 eb2@14 ~ db2@15 ~ eb2@15 db2@15 eb2@15 db2@13]/3", F: "~@3 eb2@15 db2@14", G: "~ eb2@15 ~ db2@15",
  H: "[eb2@15 db2@15 eb2@15 ~ db2@15 eb2@15 db2@15 ~ eb2@15 db2@15 eb2@15 db2@15 ~ eb2@15 db2@15 eb2@15 ~ db2@15 eb2@15 db2@15 eb2@12]/8",
  I: "~@4 db2@15 eb2@13", J: "~@2 db2@15 ~ eb2@14",
  K: "[~ db2@15 eb2@15 db2@15 ~ eb2@15 db2@15 eb2@15 ~ db2@15 eb2@15 db2@15 ~ bb2@15 f2@6]/5",
  L: "[~@9 gb2@15 db2@20 ~ bb2@15 f2@15 gb2@15 ~ db2@20 bb2@15 f2@15 ~ gb2@15 db2@20 bb2@15]/6",
  M: "[~ f2@15 ab2@15 gb2@15 db2@5 ~ eb2@12]/2", N: "~@3 db2@15 eb2@14", O: "~ db2@15 ~ eb2@15",
  P: "[db2@15 eb2@15 db2@15 ~ eb2@15 db2@15 eb2@15 db2@15 ~ eb2@15 db2@15 ~ eb2@15 db2@15 eb2@15 db2@15 ~ eb2@15 db2@15 bb2@15 f2@12]/8",
  Q: "[~@4 gb2@15 db2@20 bb2@15 ~ f2@9]/2", R: "[~@6 gb2@15 db2@20 ~ bb2@15 f2@7]/2",
  S: "[~@8 gb2@15 ~ db2@20 bb2@15 f2@15 ~ ab2@15 gb2@15 db2@5 eb2@14 ~ db2@15 ~ eb2@15 db2@15 eb2@15 db2@15 ~ eb2@15 db2@15 ~ eb2@15 db2@8]/8",
  T: "[~@7 eb2@15 db2@15 ~ eb2@15 db2@15 eb2@15 db2@13]/3",
  U: "[eb2@15 db2@15 eb2@15 ~ db2@15 bb2@15 f2@15 ~ gb2@15 db2@20 bb2@15 ~ f2@15 gb2@15 db2@19]/6",
  V: "~@2 bb2@15 f2@15", W: "[gb2@15 db2@20 ~ bb2@15 f2@13]/2", X: "~@2 ab2@15 ~ gb2@14",
  Y: "[~ db2@5 eb2@14 ~ db2@15 eb2@15 ~ db2@15 eb2@15 db2@14]/3", Z: "~@2 eb2@15 db2@15",
  AA: "[eb2@15 ~ db2@15 eb2@15 db2@15 eb2@15 ~ db2@15 eb2@15 db2@15 ~ eb2@15 db2@15 eb2@15 ~ db2@15 bb2@15 f2@15 gb2@15 ~ ab2@15 bb2@11]/8",
  AB: "[~@4 f2@15 ~ gb2@15 ab2@15 bb2@14]/2", AC: "~ f2@15 ~ gb2@15",
  AD: "[ab2@15 bb2@15 ~ f2@15 gb2@15 ab2@15 ~ bb2@15 f2@15 gb2@15 ab2@15 ~ bb2@15 f2@15 gb2@15 ab2@15 ~ bb2@15 f2@15 gb2@15 ~ ab2@11]/8",
  AE: "~@4 bb2@15 f2@13", AF: "~@3 gb2@15 ab2@14", AG: "~ bb2@15 f2@15 ~",
  AH: "[gb2@15 ab2@15 bb2@15 f2@15 ~ gb2@15 ab2@15 bb2@15 ~ f2@15 gb2@15 ab2@15 ~ bb2@15 f2@15 gb2@15 ab2@15 ~ bb2@15 f2@15 gb2@12]/8",
  AI: "[~@4 ab2@17 bb2@57 ~@18]/3",
})).s("gm_fretless_bass").gain(0.31)

// chords · harpsichord
const harpsichord = note(`<
  ~ A B C D E F G@2 H I@2 J K L M N O P Q R S@2 T U V W X Y Z AA AB AC AD AE AF AG T AH AI AJ AK AL AM AN AO AP@2 AQ AR
  AS AT AU AV AW AX AY AZ BA BB BC BD J K L M BE BF BG BH BI BJ BK BL BM BD BN BO L BP N BQ P BR BS BT BU BV BW BX BY BZ
  CA CB CC CD CE@2 CF CG CH CI CJ CK CL CM CN CO@3 ~
>`.pickRestart({
  A: "~ [db4,f4] ~@7 [db4,f4]@2 ~@5 [c4,f4] ~@7 [c4,f4]@2 ~@6", // Db F5
  B: "[db4,gb4] ~@6 [db4,gb4]@2 ~@6 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~", // Gb5 Db
  C: "~@3 [db4,f4] ~@7 [db4,f4]@2 ~@6 [c4,f4] ~@6 [c4,f4]@2 ~@4", // Db F5
  D: "~@2 [db4,gb4] ~@6 [db4,gb4]@2 ~@6 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@4", // Gb5 Db
  E: "[db4,f4] ~@4 db4 f4 ~@6 [db4,f4]@2 ~@6 [c4,f4] ~@6 [c4,f4]@2 ~@2", // Db F5
  F: "~@4 [db4,gb4] ~@7 [db4,gb4]@2 ~@5 [db4,f4] ~@4 [db4,f4] ~@5 [db4,f4] ~", // Gb5 Db
  G: "[~@3 [db4,f4] ~@4 [db4,f4] ~@6 [db4,f4]@2 ~@6 [c4,f4] ~@7 [c4,f4]@2 ~@5 [c4,eb4] ~@7 [c4,eb4]@2 ~@6 [bb3,db4] ~@4 [bb3,db4] ~@4]/2", // Db F5 Cm Bbm
  H: "[bb3,db4] ~@4 [bb3,db4] ~@4 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@3", // Bbm Gb Fm
  I: "[~ [f3,ab3]@2 ~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@8 [f3,ab3] ~@5 ab3@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2, ~@31 f3@2 ~@31]/2", // Fm Gb Fm Gb Fm
  J: "~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@9 [f3,ab3] ~@4 [f3,ab3]@2 ~", // Gb Fm
  K: "~@4 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@3", // Gb Fm
  L: "~@3 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@4", // Gb Fm
  M: "~ [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@6", // Gb Fm
  N: "[gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3]", // Gb Fm Gb
  O: "~@6 [gb3,bb3]@2 ~@8 [f3,ab3] ~@5 [f3,ab3]@2 ~@5 [gb3,bb3] ~@2", // Gb Fm Gb
  P: "~@5 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@3", // Gb Fm Gb
  Q: "~@3 [gb3,bb3]@2 ~@9 [f3,ab3] ~@4 [f3,ab3]@2 ~@5 [gb3,bb3] ~@5", // Gb Fm Gb
  R: "~@2 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@6", // Gb Fm Gb
  S: "[~ bb3@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@7 [gb3,bb3]@2, gb3 ~@31]/2", // Fm Gb Fm Gb
  T: "~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@2", // Fm Gb
  U: "~@6 [f3,ab3] ~@5 [f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@3", // Fm Gb
  V: "~@5 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@5", // Fm Gb
  W: "~@4 [f3,ab3] ~@4 [f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@6", // Fm Gb
  X: "~@2 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@7", // Fm Gb
  Y: "~ [f3,ab3] ~@4 [f3,ab3]@2 ~@5 [db4,f4] ~@7 [db4,f4]@2 ~@6 [c4,f4] ~@2", // Fm Db F5
  Z: "~@4 [c4,f4]@2 ~@6 [db4,gb4] ~@7 [db4,gb4]@2 ~@5 [db4,f4] ~@4", // F5 Gb5 Db
  AA: "[db4,f4] ~@4 db4 f4 ~@4 [db4,f4] ~@4 [db4,f4] ~@6 [db4,f4]@2 ~@6 [c4,f4]", // Db F5
  AB: "~@7 [c4,f4]@2 ~@5 [db4,gb4] ~@7 [db4,gb4]@2 ~@6 [db4,f4] ~", // F5 Gb5 Db
  AC: "~@3 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@7 [db4,f4]@2 ~@4", // Db
  AD: "~ [c4,f4] ~@7 [c4,f4]@2 ~@5 db4 gb4 ~@6 [db4,gb4]@2 ~@6", // F5 Gb5
  AE: "[db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@7 [db4,f4]@2 ~@2", // Db
  AF: "~@3 c4 f4 ~@6 [c4,f4]@2 ~@6 [c4,eb4] ~@6 [c4,eb4]@2 ~@4", // F5 Cm
  AG: "~@2 [bb3,db4] ~@4 [bb3,db4] ~@4 [bb3,db4] ~@4 [bb3,db4] ~@4 [gb3,bb3] ~@7 [gb3,bb3]@2", // Bbm Gb
  AH: "~@7 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@3", // Fm Gb
  AI: "~@5 [f3,ab3] ~@5 [f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@4", // Fm Gb
  AJ: "~@4 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@6", // Fm Gb
  AK: "~@3 [f3,ab3] ~@4 [f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@7", // Fm Gb
  AL: "~ [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8", // Fm Gb
  AM: "[f3,ab3] ~@4 [f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~", // Fm Gb Fm
  AN: "~@3 [f3,ab3]@2 ~@6 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@2", // Fm Gb Fm
  AO: "~@2 [f3,ab3]@2 ~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4", // Fm Gb Fm
  AP: "[~ [f3,ab3]@2 ~@5 [db4,f4] ~@7 [db4,f4]@2 ~@5 [c4,f4] ~@7 [c4,f4]@2 ~@6 [db4,gb4] ~@6 [db4,gb4]@2 ~@6 [db4,f4] ~@4 [db4,f4] ~@4]/2", // Fm Db F5 Gb5 Db
  AQ: "[db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@7 [db4,f4]@2 ~@6 [c4,f4] ~@5", // Db F5
  AR: "~ [c4,f4]@2 ~@6 [db4,gb4] ~@7 [db4,gb4]@2 ~@5 [db4,f4] ~@4 [db4,f4] ~@2", // F5 Gb5 Db
  AS: "~@2 [db4,f4] ~@5 [db4,f4] ~@4 [db4,f4] ~@6 [db4,f4]@2 ~@6 [c4,f4] ~@3", // Db F5
  AT: "~@4 [c4,f4]@2 ~@5 [db4,gb4] ~@7 [db4,gb4]@2 ~@6 [db4,f4] ~@4", // F5 Gb5 Db
  AU: "[db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@7 [db4,f4]@2 ~@5 [c4,f4] ~", // Db F5
  AV: "~@6 [c4,f4]@2 ~@5 [c4,eb4] ~@7 [c4,eb4]@2 ~@6 [bb3,db4] ~@2", // F5 Cm Bbm
  AW: "~@2 [bb3,db4] ~@4 [bb3,db4] ~@4 [bb3,db4] ~@4 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@5", // Bbm Gb
  AX: "~@3 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@7", // Fm Gb
  AY: "~@2 [f3,ab3] ~@4 [f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8", // Fm Gb
  AZ: "[f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~@7 bb3@2 ~@8 [f3,ab3], ~@10 gb3 ~@5", // Fm Gb Fm
  BA: "~@4 [f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@2", // Fm Gb Fm
  BB: "~@2 [f3,ab3]@2 ~@6 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@3", // Fm Gb Fm
  BC: "~ [f3,ab3]@2 ~@6 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@8 [f3,ab3] ~@5", // Fm Gb Fm
  BD: "[f3,ab3]@2 ~@5 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2", // Fm Gb Fm
  BE: "[db4,f4] ~@7 [db4,f4]@2 ~@5 [c4,f4] ~@7 [c4,f4]@2 ~@6 [db4,gb4]", // Db F5 Gb5
  BF: "~@6 [db4,gb4]@2 ~@6 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@2", // Gb5 Db
  BG: "~@2 [db4,f4] ~@7 [db4,f4]@2 ~@6 [c4,f4] ~@6 [c4,f4]@2 ~@5", // Db F5
  BH: "~ [db4,gb4] ~@7 gb4@2 ~@5 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4] ~@4 [db4,f4], ~@4 db4 ~@11", // Gb5 Db
  BI: "~@5 [db4,f4] ~@6 [db4,f4]@2 ~@6 [c4,f4] ~@6 [c4,f4]@2 ~@3", // Db F5
  BJ: "~@3 [db4,gb4] ~@7 [db4,gb4]@2 ~@5 [db4,f4] ~@4 [db4,f4] ~@5 [db4,f4] ~@2", // Gb5 Db
  BK: "~@2 [db4,f4] ~@4 [db4,f4] ~@6 [db4,f4]@2 ~@6 [c4,f4] ~@7 [c4,f4]@2", // Db F5
  BL: "~@5 [c4,eb4] ~@7 [c4,eb4]@2 ~@6 [bb3,db4] ~@4 [bb3,db4] ~@4 [bb3,db4]", // Cm Bbm
  BM: "~@4 [bb3,db4] ~@4 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4", // Bbm Gb Fm
  BN: "~@6 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~", // Gb Fm
  BO: "~@5 [gb3,bb3] ~@6 [gb3,bb3]@2 ~@9 [f3,ab3] ~@4 [f3,ab3]@2 ~@2", // Gb Fm
  BP: "~@2 [gb3,bb3] ~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@5", // Gb Fm
  BQ: "~@7 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [gb3,bb3] ~", // Gb Fm Gb
  BR: "~@4 [gb3,bb3]@2 ~@8 [f3,ab3] ~@4 [f3,ab3]@2 ~@6 [db4,f4] ~@4", // Gb Fm Db
  BS: "~@2 [db4,f4]@2 ~@9 [c4,f4] ~@4 [c4,f4]@2 ~@5 [bb3,db4] ~@6", // Db F5 Bbm
  BT: "~ [bb3,db4]@2 ~@6 [db4,eb4] ~@6 [c4,eb4]@2 ~@6 [db4,f4] ~@7", // Bbm Dbsus2 Cm Db
  BU: "[db4,f4]@2 ~@8 [c4,f4] ~@4 [c4,f4]@2 ~@5 bb3 db4 ~@6 [bb3,db4]@2", // Db F5 Bbm
  BV: "~@6 [db4,eb4] ~@6 [c4,eb4]@2 ~@6 [db4,f4] ~@7 [db4,f4]@2 ~", // Dbsus2 Cm Db
  BW: "~@7 [c4,f4] ~@4 [c4,f4]@2 ~@6 [bb3,db4] ~@6 [bb3,db4]@2 ~@3", // F5 Bbm
  BX: "~@3 [db4,eb4] ~@7 [c4,eb4]@2 ~@5 [db4,f4] ~@7 [db4,f4]@2 ~@4", // Dbsus2 Cm Db
  BY: "~@4 [c4,f4] ~@4 [c4,f4]@2 ~@6 [bb3,db4] ~@6 [bb3,db4]@2 ~@6", // F5 Bbm
  BZ: "[db4,eb4] ~@7 [c4,eb4]@2 ~@5 [db4,f4] ~@7 [db4,f4]@2 ~@7", // Dbsus2 Cm Db
  CA: "~ [c4,f4] ~@4 [c4,f4]@2 ~@6 [bb3,db4] ~@7 [bb3,db4]@2 ~@5 [db4,eb4] ~@2", // F5 Bbm Dbsus2
  CB: "~@5 [c4,eb4]@2 ~@6 [db4,f4] ~@6 [db4,f4]@2 ~@8 [c4,f4] ~", // Cm Db F5
  CC: "~@4 [c4,f4]@2 ~@5 [bb3,db4] ~@7 [bb3,db4]@2 ~@5 [db4,eb4] ~@5", // F5 Bbm Dbsus2
  CD: "~@2 [c4,eb4]@2 ~@6 [db4,f4] ~@6 [db4,f4]@2 ~@9 [c4,f4] ~@3", // Cm Db F5
  CE: "[~ [c4,f4]@2 ~@5 [bb3,db4] ~@7 [bb3,db4]@2 ~@6 [db4,eb4] ~@6 [c4,eb4]@2 ~@6 [db4,f4] ~@7 f4@2 ~@8 [c4,f4] ~@4 [c4,f4]@2, ~@23 db4 ~@8]/2", // F5 Bbm Dbsus2 Cm Db F5
  CF: "~@5 [bb3,db4] ~@7 [bb3,db4]@2 ~@6 [db4,eb4] ~@6 [c4,eb4]@2 ~@2", // Bbm Dbsus2 Cm
  CG: "~@4 [db4,f4] ~@7 [db4,f4]@2 ~@8 [c4,f4] ~@4 [c4,f4]@2 ~@3", // Db F5
  CH: "~@3 [bb3,db4] ~@6 [bb3,db4]@2 ~@6 [db4,eb4] ~@7 eb4@2 ~@4, ~@25 c4@2 ~@5", // Bbm Dbsus2
  CI: "~ [db4,f4] ~@7 [db4,f4]@2 ~@8 [c4,f4] ~@4 [c4,f4]@2 ~@6", // Db F5
  CJ: "[bb3,db4] ~@6 [bb3,db4]@2 ~@6 [db4,eb4] ~@7 [c4,eb4]@2 ~@5 [db4,f4] ~", // Bbm Dbsus2 Cm Db
  CK: "~@6 [db4,f4]@2 ~@8 [c4,f4] ~@4 [c4,f4]@2 ~@6 [bb3,db4] ~@2", // Db F5 Bbm
  CL: "~@5 [bb3,db4]@2 ~@5 [db4,eb4] ~@7 [c4,eb4]@2 ~@5 [db4,f4] ~@4", // Bbm Dbsus2 Cm Db
  CM: "~@3 [db4,f4]@2 ~@8 [c4,f4] ~@4 [c4,f4]@2 ~@6 [bb3,db4] ~@5", // Db F5 Bbm
  CN: "~@2 [bb3,db4]@2 ~@5 [db4,eb4] ~@7 [c4,eb4]@2 ~@6 [db4,f4] ~@6", // Bbm Dbsus2 Cm Db
  CO: "[[db4,f4]@2 ~@8 [c4,f4] ~@5 [c4,f4]@2 ~@5 [bb3,db4] ~@7 [bb3,db4]@2 ~@5 [db4,eb4] ~@7 [c4,eb4]@3 ~@4 [db4,f4]@21 ~@22]/3", // Db F5 Bbm Dbsus2 Cm Db
})).s("gm_harpsichord").gain(0.41).pan(0.7)

// chords · harpsichord · soft notes
const harpsichord_soft = note(`<
  A B C D@2 E F G H I J@2 K L M@2 N O P Q@2 R S T U V W X Y Z AA AB AC AD AE AF AG T AH AI@2 AJ AK AL AM AN AO AP AQ AR
  AS AT AU AV AW AX AY AZ@2 BA BB BC K L BD@2 BE BF BG BH BI BJ BK BL BM BN@2 BO BP@2 N BQ BR BS BT BU BV BW BX BY@2 BZ
  CA CB CC CD CE CF CG CH CI@2 CJ CK CL CM CN CO CP@2 ~
>`.pickRestart({
  A: "~@15 bb2", B: "~@6 f3 ~@4 bb2 ~@2 f2@2 ~@5 c3 ~@4 f2 ~@2 gb2@2 ~",
  C: "~@5 db3 ~@4 gb3 ~ f3 ~@4 eb3 ~@4 db3 ~@5 c3 ~@3",
  D: "[~ bb2@2 ~@5 f3 ~@4 bb2 ~@2 f2@2 ~@6 c3 ~@4 f2 ~ gb2@2 ~@6 db3 ~@4 gb3 ~@2 f3 ~@4 eb3 ~@4 db3 ~@4 c3 ~]/2",
  E: "~@3 bb2@2 ~@6 f3 ~@4 bb2 ~ f2 ~@7 c3 ~@4 f2", F: "~ gb2@2 ~@6 db3 ~@4 gb3 ~@2 f3 ~@4 eb3 ~@4 db3 ~@4",
  G: "c3 ~@4 bb2@2 ~@6 f3 ~@4 bb2 ~ f2@2 ~@6 c3 ~@3", H: "~ f2 ~@2 ab2@2 ~@5 eb3 ~@4 ab2 ~@2 gb2 ~@4 f2 ~@4 eb2 ~@2",
  I: "~@2 db2 ~@4 eb2@2 ~@6 gb2 ~@4 bb2 ~@2 ab2@2 ~@3 f2@2 ~@2",
  J: "[~ db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@3 f2@2 ~@3 db2@2 ~@4 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2]/2",
  K: "~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@4 f2@2 ~@3 db2@2 ~",
  L: "~@2 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3",
  M: "[eb2@2 ~@6 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@5 gb2@2 ~@4 bb2 ~ ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~]/2",
  N: "~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@2",
  O: "~@4 gb2@2 ~@3 bb2 ~ ab2@2 ~@3 f2@2 ~@3 db2@2 ~@4 eb2@2 ~@3",
  P: "~@2 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@5",
  Q: "[~ gb2@2 ~@3 bb2 ~ ab2@2 ~@4 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2]/2",
  R: "~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~",
  S: "~@2 bb2 ~ ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3",
  T: "bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2",
  U: "~ ab2@2 ~@3 f2@2 ~@3 db2@2 ~@4 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2",
  V: "ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2",
  W: "~@4 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~",
  X: "~@2 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@2",
  Y: "~ f2@2 ~@3 db2@2 ~@3 bb2@2 ~@6 f3 ~@4 bb2 ~ f2@2 ~@4",
  Z: "~@2 c3 ~@4 f2 ~ gb2@2 ~@6 db3 ~@4 gb3 ~@2 f3 ~@4 eb3 ~", AA: "~@3 db3 ~@4 c3 ~@4 bb2@2 ~@6 f3 ~@4 bb2 ~ f2@2 ~@2",
  AB: "~@4 c3 ~@4 f2 ~@2 gb2@2 ~@5 db3 ~@4 gb3 ~@2 f3 ~@4", AC: "eb3 ~@4 db3 ~@4 c3 ~@4 bb2@2 ~@6 f3 ~@4 bb2 ~@2 f2",
  AD: "~@6 c3 ~@4 f2 ~@2 gb2@2 ~@6 db3 ~@4 gb3 ~ f3 ~@2", AE: "~@2 eb3 ~@4 db3 ~@5 c3 ~@4 bb2@2 ~@5 f3 ~@4 bb2 ~",
  AF: "~ f2@2 ~@6 c3 ~@4 f2 ~ ab2@2 ~@6 eb3 ~@4 ab2 ~ gb2", AG: "~@5 f2 ~@4 eb2 ~@4 db2 ~@4 eb2@2 ~@6 gb2 ~@3",
  AH: "~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~",
  AI: "[ab2@2 ~@3 f2@2 ~@3 db2@2 ~@4 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~]/2",
  AJ: "~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@2",
  AK: "~ f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3",
  AL: "f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@3 f2@2",
  AM: "~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~",
  AN: "~@2 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@3 f2@2 ~@3",
  AO: "~ db2@2 ~@3 bb2@2 ~@5 f3 ~@4 bb2 ~@2 f2@2 ~@6 c3 ~@2",
  AP: "~@2 f2 ~ gb2@2 ~@6 db3 ~@4 gb3 ~ f3 ~@5 eb3 ~@4 db3 ~", AQ: "~@3 c3 ~@4 bb2@2 ~@5 f3 ~@5 bb2 ~ f2@2 ~@6 c3",
  AR: "~@4 f2 ~ gb2@2 ~@6 db3 ~@4 gb3 ~@2 f3 ~@4 eb3 ~@4", AS: "db3 ~@4 c3 ~@4 bb2@2 ~@6 f3 ~@4 bb2 ~ f2 ~@6",
  AT: "~ c3 ~@4 f2 ~@2 gb2@2 ~@5 db3 ~@4 gb3 ~@2 f3 ~@4 eb3 ~@2",
  AU: "~@2 db3 ~@4 c3 ~@4 bb2@2 ~@6 f3 ~@4 bb2 ~@2 f2@2 ~@2",
  AV: "~@3 c3 ~@4 f2 ~@2 ab2@2 ~@6 eb3 ~@4 ab2 ~ gb2 ~@4 f2", AW: "~@4 eb2 ~@4 db2 ~@5 eb2@2 ~@5 gb2 ~@4 bb2 ~@2 ab2@2",
  AX: "~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@2",
  AY: "~@2 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3",
  AZ: "[f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@3 f2@2 ~]/2",
  BA: "~@2 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@2",
  BB: "~ db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@3 f2@2 ~@4",
  BC: "db2@2 ~@3 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2",
  BD: "[eb2@2 ~@6 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 bb2@2 ~]/2",
  BE: "~@5 f3 ~@4 bb2 ~@2 f2@2 ~@5 c3 ~@5 f2 ~ gb2@2 ~@2", BF: "~@4 db3 ~@4 gb3 ~ f3 ~@4 eb3 ~@5 db3 ~@4 c3 ~@4",
  BG: "bb2@2 ~@5 f3 ~@4 bb2 ~@2 f2@2 ~@6 c3 ~@4 f2 ~ gb2@2", BH: "~@6 db3 ~@4 gb3 ~@2 f3 ~@4 eb3 ~@4 db3 ~@4 c3 ~@2",
  BI: "~@2 bb2@2 ~@6 f3 ~@4 bb2 ~ f2 ~@7 c3 ~@4 f2 ~", BJ: "~ gb2@2 ~@5 db3 ~@4 gb3 ~@2 f3 ~@4 eb3 ~@4 db3 ~@4 c3",
  BK: "~@4 bb2@2 ~@6 f3 ~@4 bb2 ~ f2@2 ~@6 c3 ~@4", BL: "f2 ~@2 ab2@2 ~@5 eb3 ~@5 ab2 ~ gb2 ~@4 f2 ~@4 eb2 ~@3",
  BM: "~ db2 ~@4 eb2@2 ~@6 gb2 ~@4 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3",
  BN: "[db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@3 f2@2 ~@4 db2@2 ~@3 eb2@2 ~@5 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~]/2",
  BO: "~@2 eb2@2 ~@6 gb2@2 ~@3 bb2 ~ ab2@2 ~@4 f2@2 ~@3 db2@2 ~@2",
  BP: "[~ eb2@2 ~@5 gb2@2 ~@4 bb2 ~ ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2 ~@6 gb2@2 ~@3 bb2 ~@2 ab2@2 ~@3 f2@2 ~@3 db2@2 ~@3 eb2@2]/2",
// … 244 more lines