Strudelify
Goodbye Stranger cover art

Breakfast In America

Goodbye Stranger

Supertramp

KeyA♭ majorTempo126 bpm
0:00/0:00
// Goodbye Stranger — Supertramp
// 126 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 10, 4/4 at bar 11, 2/4 at bar 15, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 193 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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(`<
  ~@14 A@6 ~@10 B@3 C@6 ~@7 D@8 E F G H I J@5 K L M@2 N O P Q R L S@2 T ~@9 U@3 V@7 ~@7 W@8 X Y G H Z Y G H Z AA AB AC
  AD AE AF AG AH AI AB AJ@7 AK AL@8 AM AN AO AP@2 AQ AR AS AT AU@3 AV@2 AW@5 AX AY@3 AZ BA@2 BB@2 BC BD BE@2 BF BG BH
  BI@6 BJ BK BL BM BN BO
>`.pickRestart({
  A: "[~@26 gb1@33 f1@32 db2@32 ~ bb1@33 gb2@24 ~@11]/6", B: "[~@5 gb1@33 f1@32 db2@26]/3",
  C: "[~@6 bb1@33 ab1@33 gb1@33 db2@32 bb1@35 ~@20]/6",
  D: "[~@25 gb2@2 ~ g2@2 ab2@26 ~ ab2@2 ~@2 gb2@26 ~@3 gb2@2 gb2@2 f2@28 db2@2 c2@2 bb1@12 c2@2 db2@3 eb2@11 gb2 ~@3 ab2@26 ~@3 ab2@2 g2@2 gb2@26 ~@2 gb2 ~ gb2@2 f2@28 db2@2 c2@2 ~, ~@60 g2@2 ~@95 g2@2 ~@97]/8",
  E: "bb1@12 c2@2 db2@2 eb2@11 gb2 ~ g2@2 ab2", F: "~@14 ab2 g2", G: "gb2@26 ~@2 gb2 ~ gb2@2", H: "f2@14 db2 c2",
  I: "~ bb1@12 c2@2 db2@2 eb2@11 gb2 ~ g2@2",
  J: "[ab2 ~@28 ab2@2 g2@2 gb2@26 ~@2 gb2 ~ gb2@2 f2@28 db2@2 c2@2 ~ bb1@12 c2@2 db2@2 eb2@11 gb2 ~ g2@2 [ab1,ab2]@7 ~@5 ab1@5 ~@11 eb2@2 ~, ~@136 ab2@8 ~@2 ab2@11 ~@3, ~@77 ab1@3]/5", // Ab
  K: "ab2@2 ~@4 ab2@7 ~@13 gb1@4 ab2@2, ~@2 gb1@7 ~@4 gb1@9 ~@10, ~@18 ab2@11 ~@3",
  L: "~@7 ab2@7 ~@12 f1@4 eb2@2, ~@2 f1@9 ~@3 f1@9 ~@9, ~@18 ab2@11 ~@3",
  M: "[ab2 ~@13 bb1@2 ~@2 eb1@8 eb2@8 ~@6 ab2@6 ~@12 ab1@4 eb2@2, ~ bb1@10 ~@23 ab1@9 ~@3 ab1@10 ~@8, ~@8 bb2@9 ~@33 ab2@12 ~@2]/2",
  N: "ab2 gb1@3 ab2@3 ~@6 gb1@2 ab2, ~@14 gb1@9 ~@9, ~@9 ab2@6 ~",
  O: "~ f1@3 ab2@3 ~@6 f1@2 eb2, ~@7 f1@4 ~@5, ~@9 ab2@6 ~", P: "bb2 ~@7 ab2@5 ~ bb2@4 eb1@8 eb2@6, ~@2 bb1@13 ~@17",
  Q: "~@2 ab1@6 ~@5 ab1@5 ~@11 eb2@2 ~, ~@8 ab2@8 ~@2 ab2@11 ~@3, ~@13 ab1@3", R: "ab2@2 e1@5 e2@5 ~@6 e2@7 ~ e1@5 ~",
  S: "[ab2 ~ gb1@60 ~@2]/2", T: "~ ab2@12 ~@3", U: "[~@31 eb2@8 ~ gb1@31 ~ f1@24]/3",
  V: "[~@8 db2@27 ~@5 bb1@32 ab1@32 ~ gb1@32 db2@32 bb1@35 ~@20]/7",
  W: "[~@26 gb2@2 g2@2 ab2@26 ~@2 ab2@2 g2@2 gb2@26 ~@2 gb2@2 gb2@2 f2@28 db2@3 c2@2 bb1@12 c2@2 db2@2 eb2@12 gb2 ~ g2@2 ab2@26 ~@2 ab2@2 g2@2 gb2@26 ~@2 gb2 ~ gb2@2 f2@29 db2@2 c2@2]/8",
  X: "bb1@12 c2@2 db2@2 eb2@11 ~ gb2 ~ g2@2", Y: "ab2 ~@27 ab2@2 g2@2", Z: "~ bb1@11 c2@2 db2@3 eb2@11 gb2 ~ g2@2",
  AA: "[ab1,ab2]@3 ab2@3 ab1@2 ~@4 ab1@2 eb2 ab2, ~@16 ab2@11 ~@5", // Ab
  AB: "~@2 ab2@4 ~@8 ab2 ~, gb1@7 ~@5 gb1@9 ~@3 gb1@7 ~, ~@16 ab2@11 ~@5",
  AC: "~@24 f1@4 eb2@2 ab2 ~, f1@9 ~@3 f1@9 ~@11, ~@6 ab2@9 ~ ab2@11 ~@5",
  AD: "~@6 bb1 ~ eb1@4 eb2@4, bb1@5 ~@11, ~@6 bb2@9 ~@17",
  AE: "~@3 ab2@3 ~@6 ab1@2 eb2 ab2, ab1@9 ~@3 ab1@10 ~@10, ~@4 ab2@3 ~",
  AF: "gb1@6 ab2@6 ~@16 ab2@3 ~, ~@12 gb1@9 ~@3 gb1@7 ~, ~@4 ab2@3 ~",
  AG: "f1@6 ab2@6 ~@12 f1@4 eb2@2 bb2 ~, ~@3 f1@2 ~@3, ~@4 ab2@3 ~", AH: "~@3 ab2@2 ~ bb2@2 eb1@4 eb2@3 ~, bb1@13 ~@19",
  AI: "ab1@3 ab2@3 ab1@2 ~@4 ab1@2 eb2 ab2, ~@16 ab2@11 ~@5",
  AJ: "[~@23 f1@4 eb2@2 ab2 ~@13 bb1@2 ~@2 eb1@8 eb2@8 ~@6 ab2@6 ~@12 ab1@4 eb2@2 ab2 ~ gb1@6 ab2@6 ~@16 ab2@3 f1@6 ab2@6 ~@12 f1@4 eb2@2 bb2 ~@7 ab2@4 ~@2 bb2@4 eb1@8 eb2@6 ~@2 ab1@6 ab2@6 ab1@4 ~@8 ab1@4 eb2@2 ab2@2 e1@2, f1@9 ~@2 f1@9 ~@11 bb1@10 ~@22 ab1@9 ~@3 ab1@10 ~@22 gb1@9 ~@3 gb1@7 ~@12 f1@8 ~@12 bb1@13 ~@53, ~@5 ab2@9 ~ ab2@11 ~@11 bb2@9 ~@33 ab2@12 ~@20 ab2@11 ~@20 ab2@12 ~@52 ab2@11 ~@7]/7",
  AK: "~@4 e2@5 ~@5 e2@7 ~ e1@5 ~@2 f1@3",
  AL: "[~@21 f1@4 eb2@2 ab2 ~ gb1@51 ~@5 [ab1,ab2]@24 ~@7 [ab1,ab2]@25 ~@7 [ab1,ab2]@26 ~@6 [ab1,ab2]@26 ~@5 [ab1,ab2]@25 ~@6 [ab1,ab2]@13 ~, ~@3 ab2@9 ~ ab2@11 ~@232, ~@9 f1@9 ~@238]/8", // Ab
  AM: "~@3 [ab1,ab2]@13 ~@2 [ab1,ab2]@12 ~@2", AN: "~@2 [ab1,ab2]@12 ~@3 [ab1,ab2]@9 ~@6",
  AO: "~@5 eb2@4 ab1@9 ~@2 eb2@4 ab1@8",
  AP: "[~@4 eb2@3 ~ ab1@4 bb1@4 b1@4 c2@4 db2@11 ab2@4 db2@10 ~@2 ab2@4 db2@9]/2",
  AQ: "~@3 ab2@4 db2@3 eb2@4 f2@4 gb2@4 ab2@9 ~", AR: "~@2 eb2@4 ab1@9 ~@3 eb2@3 ab1@10 ~",
  AS: "~ eb2@3 ~ ab1@4 bb1@3 ~ b1@4 c2@4 db2@9 ~@2", AT: "~@2 ab2@2 db2@8 ~@4 ab2@3 ~ db2@9 ~@3",
  AU: "[~@3 db2@4 eb2@3 ~ f2@7 ~ ab1@9 ~@3 eb2@4 ab1@10 ~@2 eb2@3 ab1@9 ~@3 eb2@4 ab1@4 bb1@3 ~ b1@4 c2@4 db2@10 ~ ab2@3, ab2@5 ~@91]/3",
  AV: "[~ db2@9 ~@3 ab2@3 ~ db2@10 ~@2 ab2@4 db2@3 eb2@4 f2@4 gb2@3 ~ ab2@10 ~@2 eb2@4]/2",
  AW: "[ab1@9 ~@3 eb2@3 ab1@9 ~@3 eb2@4 ab1@4 bb1@4 b1@3 ~ c2@4 db2@10 ~ ab2@3 ~ db2@9 ~@3 ab2@4 db2@8 ~@4 ab2@4 ~@3 eb2@4 f2@4 gb2@4 ab2@10 ~@2 eb2@4 ab1@9 ~@3 eb2@3 ab1@9 ~@3 eb2@4 ab1@4, ~@94 db2@5 ~@61]/5",
  AX: "bb1@4 b1@4 c2@4 db2@10 ~ ab2@4 db2@5",
  AY: "[~@7 ab2@4 db2@9 ~@3 ab2@4 db2@4 eb2@4 f2@3 gb2@4 ab1@10 ~@2 eb2@4 ab1@10 ~@2 eb2@4 ab1@10 ~ eb2@4 ab1@4 bb1@3]/3",
  AZ: "~ b1@3 ~ c2@4 db2@10 ~@2 ab2@3 db2@8",
  BA: "[~@4 ab2@3 ~ db2@9 ~@3 ab2@4 db2@3 eb2@3 ~ f2@7 ~ ab1@9 ~@3 eb2@4 ~@9]/2",
  BB: "[~@18 eb2@4 ~@8 b1@4 c2@4 ~@15 db2@9 ~@2]/2", BC: "~@5 db2@10 ~@6 db2@4 eb2@4 ~@3",
  BD: "~@4 ab2@10 ~@6 ab1@9 ~@3", BE: "[~@4 ab1@9 ~@2 eb2@4 ~@8 b1@3 ~ c2@5 ~@11 ab2@3 db2@9 ~@5]/2",
  BF: "~@2 db2@8 ~@4 ab2@4 db2@5 ~@6 gb2@3", BG: "~ ab2@10 ~@2 eb2@4 ab1@9 ~@3 eb2@3",
  BH: "~ ab1@9 ~@2 eb2@4 ab1@4 bb1@4 b1@4 c2@4",
  BI: "[db2@10 ~@2 ab2@3 db2@7 ~@5 ab2@4 db2@9 ~@3 ab2@4 db2@4 eb2@4 f2@4 gb2@3 ab1@10 ~@2 eb2@4 ab1@10 ~@2 eb2@4 ab1@10 ~ eb2@4 ab1@4 bb1@4 b1@3 ~ c2@4 db2@10 ~@2 ab2@3 db2@9 ~@3 ab2@3 ~ db2@8 ~@4 ab2@4 db2@5 ~@6 gb2@4 ab2@5]/6",
  BJ: "~@2 ab2@7 eb2@3 ab1 ~ ab1@2 ab1 ~@11 ab1 ~@3", BK: "~ ab1 ~@2 ab1 ~@9 ab1 ~ ab1!2 ~@3 ab1 ~@9 ab1",
  BL: "~@2 ab1 ~@3 ab1 ~@2 ab1 ~@3 ab1 ~@2 ab1 ~@2 ab1 ~@3 ab1 ~@8",
  BM: "~@3 ab1 ~@4 ab1 ~@9 ab1 ~ ab1 ~ ab1 ~@2 ab1 ~@6", BN: "~@4 ab1 ~@2 ab1 ~@24", BO: "~@5 ab2@5 ~@22",
})).s("gm_fretless_bass").gain(0.43)

// bass · fretless bass · soft notes
const bass_soft = note("<~@72 A ~@64 B ~@33 C D E F G H I@2 ~@7 J K L M N O ~>".pickRestart({
  A: "~@7 e1@2 ~@7", B: "~@5 e1@2 ~@9", C: "~@23 ab1@9", D: "~@3 eb2@4 ab1@9 ~@6 ab1@4 bb1@3 ~@3",
  E: "~@6 db2@10 ~@2 ab2@3 ~@11", F: "~ ab2@3 ~@13 ab2@5 ~@7 f2@3", G: "gb2@3 ~@13 eb2@4 ~@12",
  H: "eb2@4 ~@15 ab1@4 bb1@4 ~@5", I: "[~@3 db2@10 ~@17 ab2@4 ~@20 eb2@4 f2@4 ~@2]/2", J: "~@4 eb2 f2 ~@2",
  K: "~@18 ab1!2 ~@2 ab1!2 ~ ab1!2 ~@3 ab1 ~",
  L: "ab1 ~@2 ab1 ~@2 ab1 ~ ab1 ~ ab1!2 ~ ab1 ~@5 ab1 ~@3 ab1!2 ~@2 ab1!2 ~ ab1 ~",
  M: "~ ab1 ~@3 ab1 ~@2 ab1 ~@2 ab1 ~@3 ab1 ~@2 ab1 ~@2 ab1 ~@3 ab1!2 ~ ab1 ~ ab1 ~",
  N: "ab1!2 ~@2 ab1 ~ ab1 ~@3 ab1!2 ~ ab1 ~ ab1 ~ ab1 ~@6 ab1 ~@2 ab1!2 ~ ab1 ~",
  O: "ab1 ~ ab1 ~@3 ab1 ~@2 ab1 ~ ab1 ~ ab1 ~ ab1@2 ab1 ~@14",
})).s("gm_fretless_bass").gain(0.21)

// other · whistle
const whistle = note("<~@96 A B C@3 ~@92>".pickRestart({
  A: "~@14 eb7@11 ~ bb6@6", B: "~ ab6@3 ~@2 f6@2 ~@2 ab6@8 ~ c7@8 ~@5, ~@19 b6@2 ~@11",
  C: "[~@23 eb6@2 ~@2 f6@4 ab6@2 ~@2 ab6@3 ~ f6@2 ~@3 c7@3 ~ eb7@3 ~@2 bb6@7 ab6@10 ~@26]/3",
})).s("gm_whistle").gain(0.22)

// chords · rock organ · "Organ 3"
const rock_organ = note("<~@30 A@4 B@5 ~@48 C@6 D@3 ~@97>".pickRestart({
  A: "[~@6 ab6@64 ~@33 bb5@25, ~@5 [c6,eb6]@63 ~@2 f6@58]/4", // Cm
  B: "[~@5 c4 [d4,e4,f4] [g4,a4] [b4,c5,d5] ~@64 ab5@30 ~@2 bb5@48 ~@7, ~@8 [c6,eb6]@63 ~ [db6,f6]@81 ~@7]/5", // Dm Gsus2 Bm Cm Db
  C: "[~@8 [c6,eb6,ab6]@63 ~@34 bb5@29 c4 [d4,e4,f4] [g4,a4] [b4,c5,d5] ~@54, ~@72 f6@63 ~@2 [c6,eb6]@55]/6", // Ab Dm Gsus2 Bm Cm
  D: "[~@9 ab5@30 ~@2 bb5@48 ~@7, ~@9 [db6,f6]@80 ~@7]/3", // Db
})).s("gm_rock_organ").gain(0.29)

// chords · rock organ · "Organ 3" · soft notes
const rock_organ_soft = note("<~@32 A@5 ~@52 B@5 ~@99>".pickRestart({
  A: "[~@7 [ab5,ab6] ab5@30 ~@31 ab6@67 ~@24, ~@7 db6@62 b3 ~@90]/5", // Ab
  B: "[~@8 ab6 ab5 ab5@30 ~@30 ab6@66 ~@24, ~@8 db6@61 ~ b3 ~@89]/5",
})).s("gm_rock_organ").gain(0.11)

// chords · piano
const piano = note(`<
  ~ A@5 B@2 C@6 D@7 E@5 F@2 G H@3 I@2 J@7 K@3 L M N@8 O@3 P@2 Q R S T U@2 V@2 W@2 X@2 Y Z AA AB@2 AC AD AE AF@4 AG@2
  AH@6 AI@8 AJ@2 AK AL AM@8 AN AO@2 P@2 AP AQ AR AS AT@2 AU@2 AV@2 AW@2 AT@2 AX@5 AY@4 AZ@2 BA BB BC BD BE BF BG ~@45
>`.pickRestart({
  A: "[~@16 ab3@8 ~@8 ab3@7 ~ ab2@6 ~@3 [eb4,ab4]@2 ~@2 [c4,eb4]@4 ~@8 ab3@7 ~ ab2@7 ~ ab3 ~@16 ab3@7 ~ ab2@6 ~@2 [eb4,ab4]@2 ~@2 [c4,eb4]@4 ~@8 ab3@7 ~@2 ab2@7 ~ [ab3,c4,eb4,ab4] ~@7 ab2@5, ~@16 [eb4,ab4]@14 ~@2 [eb4,ab4]@16 ~@5 ab4@9 ~@3 [eb4,ab4]@15 ~ [eb4,ab4]@14 ~@3 [eb4,ab4]@16 ~@4 ab4@9 ~@3 [eb4,ab4]@15 ~@15, ~@16 c4@11 ~ c4@17 ~ c4@5 ~@8 c4@20 ~@2 c4@11 ~@2 c4@17 ~ ab3@8 ~@2 ab2@7 ~@31, ~@24 ab2@8 ~@15 ab3@8 ~@2 ab2@7 ~@25 ab2@8 ~@15 c4@5 ~@7 c4@20 ~@16]/5", // Ab5 Cm Ab5 Cm Ab Ab5
  B: "[~@3 ab3@8 ~@9 [b3,d4,f4]@2 ~@2 b3@4 ~@2 b3@4 ~@2 ab3@7 ~@18 ab2@3, ~@3 [b3,d4,f4]@15 ab3@9 ~ ab2@8 [db4,f4]@14 ab3@8 ~@6, ~@11 ab2@13 [d4,f4]@11 ~ ab4@28, ~@22 ab2@7 ~@3, ~@13 [bb3,db4]@3]/2", // Bdim Db Dm Bbm
  C: "[~@5 ab3@8 ~@25 eb4@2 ~@2 [c4,eb4]@4 ~@8 ab3@8 ab2@7 ~ ab3@8 ~ ab2@8 ab3@7 ~@9 [b3,d4,f4]@2 ~@2 b3@4 ~@2 b3@5 ~@2 ab3@7 ~@17 ab2@6 ~@2 ab3@8 ~@23 c4@2 ab4@2 ~@2 [c4,eb4,ab4]@3, ~@5 [eb4,ab4]@16 [eb4,ab4]@15 c4@4 ~@8 c4@20 ~@2 [c4,eb4,ab4]@15 ~@2 [b3,d4,f4]@15 ~@5 f4@12 ~ f4@30 ~@17 c4@15 ~@10, ~@5 c4@13 ~ ab3@8 ~@9 ab3@8 ~@63 d4@9 ~@4 db4@14 ab3@2 [bb3,db4]@13 ~@3 [c4,eb4,ab4]@16 ~ eb4@14 ~@2 eb4 ~@6, ~@13 ab2@14 ~@2 ab2@14 ~@3 ab2@8 ~@41 ab2@14 ~@2 ab2@8 ~@9 ab2@14 ~@18 ab2@14 ~@3 ab2@14 ~, ~@38 ab4 ~@3 ab4@10 ~@2 [eb4,ab4]@15 ~@18 ab4@19 ~ ab4@44 ~@16 ab3@8 ~@8 ab3@8 ~]/6", // Cm Bdim Ab Ab5 Ab Bdim Bbm Ab …
  D: "[~@9 ab3@8 ~ ab2@8 [gb2,gb3,c4,eb4,gb4]@31 ~@2 [f2,f3,c4,f4]@31 ~@2 [db2,db3]@29 ~@4 [bb2,bb3]@22 ~@10 ab3@8 ~@8 ab3@7 ~@2 ab2@6 ~@2 [eb4,ab4]@2 ~@2 [c4,eb4]@4 ~@8 ab3@7 ~ ab2@7 ~ ab3 [c4,eb4,ab4], ~ ab2@15 ~@149 ab2@8 ~@15 c4@5 ~@7 c4@20 ~@4, ~@3 c4@22 ~@66 [db4,f4,ab4]@32 ~ [db4,f4,bb4]@27 ~@6 c4@11 ~ c4@17 ~@2 ab3@8 ~@2 ab2@7 ~@19, ~@9 [eb4,ab4]@17 ~@131 [eb4,ab4]@14 ~@2 [eb4,ab4]@16 ~@5 ab4@9 ~@3 [eb4,ab4]@15 ~@3]/7", // Cdim F5 Db Bb Ab5 Cm Ab Db …
  E: "[~@7 ab2@7 ~ ab3@8 ~@8 [b3,d4,f4]@2 ~@2 b3@5 ~@2 b3@4 ~@2 ab3@7 ~@17 ab2@7 ~ ab3@8 ~@25 eb4@2 ~@2 [c4,eb4]@4 ~@9 ab3@8 ab2@7 ~ ab3@8 ab2@6, ~@15 [b3,d4,f4]@14 ab3@9 ~@2 ab2@8 [db4,f4]@14 ab3@8 ~@25 ab3@8 ~@8 ab3@8 ~@41, ~@23 ab2@12 [d4,f4]@11 ~@2 ab4@32 [eb4,ab4]@16 ~ [eb4,ab4]@16 ab4 ~@3 ab4@10 ~@3 [eb4,ab4]@15 ~@15, ~@56 ab2@14 ~@19 ab2@14 ~@2 ab2@14 ~@2 ab2@8 ~@31, ~@64 [bb3,db4]@13 ~@3 c4@13 ~@18 c4@4 ~@9 c4@20 ~@2 [c4,eb4,ab4]@14]/5", // Bdim Cm Bdim Db Dm Ab5 Bbm Ab
  F: "[~@2 ab3@7 ~@10 [b3,d4,f4]@2 ~@2 b3@4 ~@2 b3@5 ~ ab3@7 ~@18 ab2@4, ~@2 ab4@19 ~@2 ab4@41, ~@2 [b3,d4,f4]@15 ~@6 f4@12 f4@29, ~@11 ab2@12 d4@9 ~@3 db4@15 ab3@8 ~@6, ~@27 ab2@8 ~@8 ab2@9 [bb3,db4]@12]/2", // Bdim Bbm
  G: "~ ab3@2 ~@4 ab2, ~@2 [c4,eb4,ab4]@7 c4@7, ~@6 ab2@7 ~@3, ~@9 ab3@4 ~@3, ~@5 eb4@3", // Ab
  H: "[~@3 c4@2 ab4@2 ~@2 [c4,eb4]@4 ~@8 ab3@8 ab2@8 ~ [gb2,gb3,c4]@31 ~ [f2,f3,c4,f4]@26, ~@3 ab3@8 ~@2 ab2@15 ~@68, ~@5 eb4 ~@3 ab4@10 ~@2 [eb4,ab4]@16 eb4@31 ~@2 ab4@3 ~@23, ~@15 c4@22 ~@59]/3", // Cm Gbdim F5 Ab5
  I: "[~@7 [db3,db4,f4,ab4]@31 ~ [bb2,bb3,db4,f4,ab4]@25, ~@7 db2@27 ~@30]/2", // Db Bbm7
  J: "[~@8 c3 ~@31 [gb2,gb3,c4,eb4,ab4]@31 ~@2 [db3,db4,f4,ab4]@31 ~ [bb2,bb3,db4,f4,ab4]@49 c5@4 eb5@4 ~@2 eb5@4 ~@2 [eb5,bb5]@7 ~ ab5@7 ~@5 ab5@11 ~ [e5,bb5]@7 ~ [e5,ab5]@8 c5@4 [f5,ab5]@2, ~@7 [ab2,ab3,c4,eb4,ab4]@32 ~@34 c2 ~@80 ab4@31 ~ [e4,ab4]@32 ~@6, ~@158 ab5@11 ~@21 e5@4 ~@30]/7", // Ab7 Db Bbm7 Eb5 Edim E Fm Ab …
  K: "[~@10 [f5,bb5]@7 ~@2 ab5@4 f5@3 ~@5 [f5,ab5]@6 db5@4 ~@2 eb5@6 ~@2 eb5@8 c5@4 eb5@4 ~@2 eb5@4 ~@3 [eb5,bb5]@8 ab5@7 ~@5, ~@19 f5@2 ~@22 bb5@16 ab4@31 ~@6, ~@63 ab5@11 ~@22]/3", // Bb5 Fm Eb5
  L: "e5@4 ~@2 e5@6 [e5,bb5]@8 ab5@7 ~@5, ab5@3 ~@5", M: "[f5,ab5]@5 ~ f5@5 ~@2 [f5,bb5]@7 ~ ab5@4 f5@3 ~ ab4@3",
  N: "[~ [f5,ab5]@6 db5@4 ~@2 [g5,bb5]@12 ~@4 ab3@5 ~@20 ab3@7 ~ gb3@5 ~@19 gb3@8 f3@4 ~@18 f3@6 ~@4 bb4@6 f4@6 bb4@3 ~ g4@6 eb3@6 g4@2 ~@2 ab3@4 ~@9 ab4@2 ~@8 ab3@6 ~@32 eb4@2 ~@2 f3@4 ~@8 f4@3 ~@7 f3@6 f4@4 [bb3,bb4,db5], ~@13 eb5@6 ~@10 ab2@30 ~@3 gb2@30 ~@2 f2@30 ~@2 [bb2,bb3,db5]@14 ~@18 ab2@30 ~@3 gb2@30 ~@2 f2@29 ~@4, ~@29 [ab4,c5]@15 ~@2 [ab4,c5]@14 ~@2 c5@15 ~ [ab4,c5]@15 ~@17 [ab4,c5]@15 ~@17 [bb4,eb5]@14 ~@2 [ab4,c5]@12 ~@5 [ab4,c5]@14 ~@2 [ab4,c5]@14 ~@2 [ab4,c5]@15 ~@17 [ab4,c5]@13 ~@4, ~@29 eb4@12 eb4@16 ~@5 [eb4,ab4]@12 eb4@16 ~@4 [f4,ab4,c5]@14 ~@14 f4@8 ~@41 eb4@12 ~@4 eb4@16 eb4@16 ~@4 [f4,ab4,c5]@14 ~@19, ~@35 ab3@15 ~@18 gb3@15 ~@17 f3@15 ~@27 eb3@5 ~@17 ab3@14 ~@19 gb3@15 ~ gb3@9 ~@7 f3@14 ~@13]/8", // Fm Gm Bbm Ab Eb5 Ab Ab5 Fm
  O: "[~@5 f4@6 bb4@2 ~@2 [g4,bb4]@6 ~@6 bb4@2 ~@2 ab3@5 ~@8 eb4@4 ~@6 ab3@6 ~@4 gb3@4 ~@10 ab4 ~@7 gb3@6 eb4@2 ~@2, ~@15 eb5@14 ~@2 c5@15 ~@2 c5@15 ~ c5@14 ~@2 [ab4,c5]@15 ~, ~@15 eb3@4 ~@2 eb3@8 ~@2 ab2@31 ~@2 gb2@29 ~@3, ~@23 g4@7 ~ [eb4,ab4]@10 ~@7 [eb4,ab4]@9 ~@3 eb4@10 gb3@13 ~@13, ~@37 ab3@14 ~@13 ab4@10 ~@2 eb4@16 ~@4]/3", // Gm Ab Ab5
  P: "[f3@4 ~@18 f3@6 ~@4 bb4@5 ~ f4@6 bb4@3 ~ [g4,bb4]@6 ~@2 g4@4 bb4@2 ~@2, f2@27 ~@5 [bb2,bb3,db5]@14 ~@8 [eb2,eb3]@7 ~@3, c5@14 ~@2 c5@13 ~@19 eb5@13 ~@3, [f4,ab4]@10 ~@2 f4@11 ~@5 f4@7 ~@29, ~@6 f3@10 ab4@9 ~@39]/2", // Gm Bbm Eb Fm
  Q: "ab4@6 ~@7 ab4@3 ~@7 ab3@8 ~, ab2@31 ~, c5@11 ~@6 c5@15, ~@7 eb4@19 ~@6, ~@7 ab3@10 ab4@10 ~@5",
  R: "~ gb3@4 ~@18 gb3@6 eb4@2 ~, ~ gb2@30 ~, ~ c5@16 c5@15, ~ [eb4,ab4]@11 ~@5 [eb4,ab4]@10 ~@5, ~@7 gb3@14 ~@11", // Ab5
  S: "~ f3@3 ~@9 f4@4 ab4@6 f4@5 ~ [f3,f4]@2 ~, ~ f2@28 ~@3, ~ c5@14 ~@2 c5@14 ~, ~ [f4,ab4]@11 ~@20, ~@7 f3@14 ~@11", // F Fm
  T: "~ bb4@6 [bb3,f4]@6 bb4@4 [g4,bb4]@6 ~@2 g4@4 bb4@2 ~, ~ db5@15 ~ eb5@13 ~@2, ~ bb2@12 ~@4 [eb2,eb3]@4 ~@2 [eb2,eb3]@7 ~@2, ~ bb3@4 ~@27", // Bb5 Gm Eb
  U: "[~ ab3@4 ~@19 [ab2,ab3]@6 ~@4 [gb2,gb3]@4 ~@18 gb3@6 eb4@2, ~ ab2@17 ab4@9 ~@7 ab4@11 ~@5 ab4@9 ~@5, ~ c5@14 ~@3 c5@15 ~ c5@14 ~@2 c5@14, ~ [eb4,ab4]@10 ~@3 eb4@13 ~@3 eb4@14 ~@2 eb4@13 ~@5, ~@4 ab3@7 ~@9 gb3@7 ~@5]/2", // Ab Gb Ab5
  V: "[~@2 f3@4 ~@18 f3@6 ~@4 bb4@5 ~ f4@6 bb4@3 ~ [eb2,eb3]@4 ~@2 [eb2,eb3]@6 g4@2, ~@2 f2@26 ~@6 [bb2,bb3]@11 ~@19, ~@2 c5@14 ~@2 c5@14 ~@2 db5@14 ~@2 eb5@13 ~, ~ [f4,ab4]@5 ~ f4@6 ~@2 f4@4 ~@13, ~@8 f3@10 ab4@10 ~@22 [g4,bb4]@10 ~@2 bb4 ~]/2", // Eb Bb Fm Gm
  W: "[~ [ab3,ab4]@3 ~@8 ab3@3 ~@2 gb3@2 ~@9 gb3@3 eb4, ~@2 ab2@30 ~@2 gb2@21 ~@9, ~@2 c5@11 ~ ab4@14 ~@2 eb4@10 gb3@14 ~@10, ~@8 ab3@13 ~@13 ab4@10 ~@2 eb4@16 ~@2, ~@18 c5@15 ~ c5@14 ~@2 [ab4,c5]@14]/2", // Ab
  X: "[~@2 f3@3 ~@13 ab4@5 ~@7 [f3,ab4]@2 ~@2 [bb3,bb4]@6 [bb3,f4]@6 bb4@3 ~ [g4,bb4]@6 ~@2 g4@4 [bb4,eb5]@2, ~@2 f2@29 ~@3 [bb2,db5]@14 ~@2 [eb2,eb3]@4 ~@2 [eb2,eb3]@8, ~ c5@7 ~ c5@7 ~@9 eb5@6 ~, ~@2 [f4,ab4]@11 ~ f4@8 ~@2 f4@14 ~@26, ~@4 f3@11 ~@17]/2", // Fm Bb Bb5 Gm Eb5 Bbm Eb Fm
  Y: "~@2 ab3@3 ~@19 ab3@6 eb4@2, ~@2 ab2@29 ~, ~ c5@7 ~ [ab4,c5]@7, ~ ab4@5 ~ eb4@6 ~@3, ~@8 ab3@13 ~@11", // Ab
  Z: "~ e3@2 ~@9 e3@3 e4, ~@2 e2@21 ~@9, ~@2 c5@15 ~ c5@14, ~ [e4,ab4]@5 ~ e4@7 ~@2, ~@8 e3@10 ab4@11 ~@3", // E
  AA: "~ f3@2 ~@9 f4@3 [ab4,c5], ~@2 [f2,c5]@15 ~@15, ~@2 [f4,ab4]@11 ~ f4@10 ~@8, ~@8 f3@9 ~ [ab4,c5]@12 ~@2", // Ab F5 Fm Ab
  AB: "[~@2 [c4,eb4]@4 ~@2 eb4@4 ~@22 [c4,eb4,gb4]@5 c4@5 ~@14 c4@4 ~@2, ~@2 gb2@53 ~@9, ~@2 gb4@12 c4@19 ~@12 c4@13 ~@6, ~@2 gb3@6 ~@4 gb3@11 ~@3 gb3@16 ~@2 gb3@10 ~@10, ~@18 [eb4,gb4]@15 ~@6 [eb4,gb4]@8 ~@3 [eb4,gb4]@12 ~@2]/2", // Cm Cdim Ebm
  AC: "~@2 ab3@7 ~@9 ab3@7 ~ ab2@6, ~ ab4@7 ~ [eb4,ab4]@7, ~@2 [c4,eb4]@11 ~ c4@17 ~, ~@5 ab2@4 ~@7", // Ab5 Cm
  AD: "~@3 [eb4,ab4]@2 ~@2 [c4,eb4]@4 ~@8 ab3@7 ~ ab2@5, c4@5 ~@2 ab4@9 ~@3 [eb4,ab4]@13, ~ ab3@8 ~@2 ab2@7 ~@14, ~@13 c4@19", // Ab5 Cm Ab5
  AE: "~@3 [ab3,c4,eb4,ab4] ~@7 ab2@7 ~ ab3@7 ~ ab2@5, ~@19 [b3,d4,f4]@13", // Ab Bdim
  AF: "[~@4 [b3,d4,f4]@2 ~@2 b3@4 ~@2 b3@4 ~@2 ab3@7 ~@17 ab2@7 ~ ab3@7 ~@26 eb4@2 ~@2 [c4,eb4]@4 ~@8 ab3@7 ~ ab2@7 ~ ab3@8 ab2@3, ~@2 ab3@9 ~ ab2@8 [db4,f4]@14 ab3@8 ~@25 ab3@8 ~@8 ab3@8 ~@37, ~@8 [d4,f4]@11 ~ ab4@32 ~@31 c4@4 ~@8 c4@20 ~@2 [c4,eb4,ab4]@11, ~@28 ab2@14 ~@18 ab2@14 ~@3 ab2@14 ~@2 ab2@8 ~@27, ~@36 [bb3,db4]@13 ~@3 [c4,eb4,ab4]@15 ~@2 [eb4,ab4]@15 ~ ab4 ~@3 ab4@10 ~@2 [eb4,ab4]@15 ~@12]/4", // Bdim Cm Db Dm Ab Bbm Ab Ab5
  AG: "[~@6 ab3@7 ~@9 [b3,d4,f4]@2 ~@2 b3@4 ~@2 b3@5 ~ ab3@7 ~@9 [bb3,db4]@9 ab2, ~@6 ab4@19 ~ ab4@38, ~@6 [b3,d4,f4]@15 ~@5 f4@12 f4@26, ~@14 ab2@12 d4@9 ~@3 db4@14 ab3@8 ~@4, ~@15 ab2@4 ~@4 ab2@7 ~@2]/2", // Bdim Bbm Bdim
  AH: "[~@7 ab3@8 ~@22 c4@2 ab4@2 ~@2 [c4,eb4]@4 ~@8 ab3@8 ab2@8 ~ [gb2,gb3,c4,eb4]@31 ~ [c4,f4]@32 ~ db2@27 ~@4 [bb2,bb3,db4,f4,ab4]@24, ~@7 [eb4,ab4]@14 ab3@8 ~@8 ab3@8 ~@91 [db3,db4,f4,ab4]@31 ~@25, ~@7 c4@13 ~ c4@15 ~@13 c4@21 ~@122, ~@15 ab2@14 ~@2 ab2@14 ~@2 ab2@15 ~@42 [f2,f3]@29 ~@59, ~@23 eb4@14 ~@2 eb4 ~@3 ab4@10 ~@2 [eb4,ab4]@16 ~@33 ab4@3 ~@85]/6", // Cm Cdim F5 Bbm7 Ab5 Db F Ab5
  AI: "[~@9 c3 ~@31 [gb2,gb3,c4,eb4,ab4]@31 ~@2 c2 ~@31 [bb2,db4]@48 c5@4 eb5@4 ~@2 eb5@4 ~@2 [eb5,bb5]@8 ab5@7 ~@5 ab5@11 ~@2 [e5,bb5]@8 [e5,ab5]@8 c5@4 ab5@11 ~ [f5,bb5]@7 ~ ab5@4 f5@3 ~@5 [f5,ab5], ~@8 [ab2,ab3,c4,eb4,ab4]@32 ~@33 [db3,db4,f4,ab4]@31 ~ [bb3,f4,ab4]@48 ~ ab4@31 ~ [e4,ab4]@32 ~@38, ~@158 ab5@11 ~@21 e5@4 ~@29 f5@4 ~@16 f5@2 ~@11]/8", // Ab7 Bbm Eb5 Edim E Bb5 Fm Ab …
  AJ: "[~@5 db5@4 ~@3 eb5@6 ~@2 eb5@8 c5@4 eb5@4 ~@2 eb5@4 ~@2 [eb5,bb5]@8 ab5@7 ~@5, ~@12 bb5@16 ab4@31 ~@5, ~@32 ab5@11 ~@21]/2", // Eb5
  AK: "e5@4 ~@3 e5@6 [e5,bb5]@8 ab5@7 ~@4, ab5@3 ~@5", AL: "~ [f5,ab5]@5 ~ f5@5 ~ [f5,bb5]@7 ~ ab5@4 f5@3 ~ ab4@3",
  AM: "[~ [f5,ab5]@7 db5@4 ~@2 [g5,bb5]@12 ~@4 ab3@5 ~@19 ab3@7 ~ gb3@5 ~@19 gb3@8 f3@4 ~@19 f3@6 ~@4 bb4@6 f4@6 bb4@3 ~ g4@6 eb3@6 g4@2 ~@2 ab3@4 ~@8 ab4@2 ~@8 ab3@6 ~@32 eb4@2 ~@2 f3@4 ~@9 f4@3 ~@7 f3@6 f4@4, ~@14 eb5@6 ~@10 ab2@30 ~@2 gb2@30 ~@2 f2@30 ~@3 [bb2,bb3,db5]@14 ~@18 ab2@30 ~@2 gb2@30 ~@2 f2@29 ~@4, ~@30 [ab4,c5]@15 ~ [ab4,c5]@14 ~@2 c5@15 ~ [ab4,c5]@15 ~@18 [ab4,c5]@15 ~@17 [bb4,eb5]@14 ~@2 [ab4,c5]@12 ~@4 [ab4,c5]@14 ~@2 [ab4,c5]@14 ~@2 [ab4,c5]@15 ~@18 [ab4,c5]@13 ~@3, ~@30 eb4@12 eb4@16 ~@4 [eb4,ab4]@12 eb4@16 ~@4 [f4,ab4,c5]@14 ~@15 f4@8 ~@40 eb4@12 ~@4 eb4@16 eb4@16 ~@4 [f4,ab4,c5]@14 ~@19, ~@36 ab3@15 ~@17 gb3@15 ~@17 f3@15 ~@28 eb3@5 ~@17 ab3@14 ~@18 gb3@15 ~ gb3@9 ~@7 f3@14 ~@13]/8", // Fm Gm Bbm Ab Eb5 Ab Ab5 Fm
  AN: "[bb3,bb4]@3 f4@3 bb4 ~ [g4,bb4]@3 ~@3 bb4 ~, db5@6 ~@2 eb5@7 ~, ~@8 eb3@2 ~ eb3@4 ~, ~@24 g4@7 ~", // Bb Gm
  AO: "[ab3@5 ~@7 eb4@4 ~@6 ab3@6 ~@4 gb3@4 ~@10 ab4 ~@7 gb3@6 eb4@2 ~@2, ab2@30 ~@2 gb2@29 ~@3, c5@15 ~ c5@15 ~ c5@13 ~@3 c5@15 ~, [eb4,ab4]@10 ~@6 [eb4,ab4]@9 ~@3 eb4@10 gb3@10 ab4@12 ~@4, ~@3 ab3@7 ~@6 ab4@5 ~ eb4@8 ~@2]/2", // Ab5
  AP: "ab4@6 ~@6 ab4@3 ~@7 ab3@8 ~@2, ab2@15 ~, c5@11 ~@5 c5@15 ~, ~@6 eb4@19 ~@7, ~@3 ab3@5 ab4@5 ~@3",
  AQ: "gb3@2 ~@9 gb3@3 eb4 ~, gb2@15 ~, c5@15 ~ c5@15 ~, [eb4,ab4]@5 ~@3 [eb4,ab4]@5 ~@3, ~@3 gb3@7 ~@6", // Ab5
  AR: "f3@3 ~@9 f4@4 ab4@6 f4@5 ~ [f3,f4]@2 ~@2, f2@7 ~, c5@7 ~ c5@7 ~, [f4,ab4]@5 ~@11, ~@6 f3@13 ~@13", // F Fm
  AS: "bb4@3 [bb3,f4]@3 bb4@2 [g4,bb4]@3 ~ g4@2 bb4 ~, [bb2,db5]@14 ~@2 [eb2,eb3]@4 ~@2 [eb2,eb3]@7 ~@3, bb3@4 ~@12 eb5@13 ~@3", // Bb5 Gm Bbm Eb
  AT: "[ab3@2 ~@9 [ab2,ab3]@3 ~@2 [gb2,gb3]@2 ~@9 gb3@3 eb4 ~, ab2@16 ab4@9 ~@7 ab4@11 ~@5 ab4@9 ~@7, c5@14 ~@2 c5@15 ~ c5@14 ~@2 c5@15 ~, [eb4,ab4]@10 ~@2 eb4@13 ~@3 eb4@14 ~@2 eb4@13 ~@7, ~@3 ab3@7 ~@9 gb3@7 ~@6]/2", // Ab Gb Ab5
  AU: "[f3@4 ~@18 f3@6 ~@4 bb4@5 ~ f4@6 bb4@3 ~ [eb2,eb3]@4 ~@2 [eb2,eb3]@6 g4@2 ~@2, f2@26 ~@6 [bb2,bb3]@11 ~@21, c5@14 ~@2 c5@14 ~@2 db5@14 ~@2 eb5@13 ~@3, [f4,ab4]@5 ~ f4@6 ~@2 f4@4 ~@14, ~@6 f3@10 ab4@10 ~@22 [g4,bb4]@10 ~@2 bb4 ~@3]/2", // Eb Bb Fm Gm
  AV: "[[ab3,ab4]@3 ~@8 ab3@3 ~@2 gb3@2 ~@9 gb3@3 eb4 ~, ab2@30 ~@2 gb2@21 ~@11, c5@11 ~ ab4@14 ~@2 eb4@10 gb3@14 ~@12, ~@6 ab3@13 ~@13 ab4@10 ~@2 eb4@16 ~@4, ~@16 c5@15 ~ c5@14 ~@2 [ab4,c5]@15 ~]/2", // Ab
  AW: "[f3@3 ~@13 ab4@5 ~@7 [f3,ab4]@2 ~@2 [bb3,bb4]@6 [bb3,f4]@6 bb4@3 ~ [g4,bb4]@6 ~@6 [bb4,eb5]@2 ~@2, f2@29 ~@3 [bb2,db5]@14 ~@2 [eb2,eb3]@4 ~@2 [eb2,eb3]@8 ~@2, c5@7 ~ c5@7 ~@9 eb5@6 ~@2, [f4,ab4]@11 ~ f4@8 ~@2 f4@14 ~@20 g4@8, ~@3 f3@11 ~@18]/2", // Fm Bb Bb5 Gm Eb5 Bbm Eb Fm
  AX: "[f3@4 ~@17 f3@6 ~@4 bb4@5 ~ f4@6 bb4@3 ~ [eb2,eb3]@4 ~@2 [eb2,eb3]@6 g4@2 ~@2 [ab3,ab4]@6 ~@16 ab3@6 ~@4 gb3@4 ~@18 gb3@6 eb4@2 ~ f3@3 ~@13 ab4@5 ~@7 [f3,ab4]@2 ~@2 [bb2,bb3,bb4,db5]@2, f2@26 ~@5 [bb2,bb3]@11 ~@21 ab2@30 ~@2 gb2@21 ~@10 f2@29 ~@5, c5@14 ~ c5@14 ~@2 db5@14 ~@2 eb5@13 ~@19 c5@15 ~ c5@14 ~@2 [ab4,c5]@15 c5@14 ~@2 c5@14 ~@4, [f4,ab4]@10 ~ f4@12 ~@4 f4@8 ~@34 ab3@13 ~@13 ab4@10 ~@2 eb4@16 ~@3 [f4,ab4]@11 ~ f4@8 ~@2 f4@12, ~@5 f3@10 ab4@10 ~@22 [g4,bb4]@10 ~@2 bb4 ~@3 c5@11 ~ ab4@14 ~@2 eb4@10 gb3@14 ~@17 f3@22 ~@6]/5", // Eb Ab Fm Bbm Bb Ab Fm Gm
  AY: "[~@4 [bb3,f4]@6 bb4@3 ~ [g4,bb4]@6 ~@6 [bb4,eb5]@2 ~@2 ab3@3 ~@19 ab3@6 eb4@2 ~@2 e3@4 ~@18 e3@6 e4@2 ~ f3@4 ~@18 f4@6 [ab4,c5]@2 ~@2 [gb2,gb3,c4,eb4,gb4] ~@2, ~@14 eb5@12 ~@4 c5@13 ~@3 [ab4,c5]@14 ~@2 c5@15 ~ c5@15 ~@16 [ab4,c5]@12 ~@7, ~@14 [eb2,eb3]@4 ~@2 [eb2,eb3]@8 ~@2 ab2@28 ~@4 e2@21 ~@10 [f2,c5]@15 ~@20, ~@22 g4@8 ab4@10 ~@2 eb4@12 ~@8 [e4,ab4]@10 ~@2 e4@14 ~@5 [f4,ab4]@11 ~ f4@10 ~@13, ~@36 ab3@13 ~@19 e3@10 ab4@10 ~@11 f3@9 ~@20]/4", // Bb5 Gm Eb5 Ab Cdim Ab Eb F5 …
  AZ: "[~@3 [eb4,gb4] ~@3 gb3 ~ c4 ~@3 [eb4,gb4] ~@15 [c4,eb4,gb4] ~@5 [c4,eb4,gb4] ~@5 c4 ~@3 [eb4,gb4] ~@7 [g2,ab2,ab3] ~@7 [eb4,gb4] ~@2, ~@21 gb3@18 gb3@12 ~@10 c4@3]/2", // Ebm Cdim Ebm Abmaj7 Ebm
  BA: "~@3 [eb4,gb4] ~@3 ab3 ~ c4 ~@3 [eb4,gb4] ~@7 ab3 ~@6 [c4,eb4,gb4] ~@3, ~@3 c4@4 ~@25", // Ebm Cdim
  BB: "~@2 [c4,eb4,gb4] ~@3 ab3 ~ c4 ~@3 [eb4,gb4] ~@7 [ab2,ab3] ~@7 [eb4,gb4] ~@3", // Cdim Ebm Ab Ebm
  BC: "~@2 [eb4,gb4] ~@3 ab3 ~ c4 ~@3 [eb4,gb4] ~@7 [ab2,ab3] ~@6 [eb4,gb4] ~@4, ~ c4@2 ~@13", // Ebm Ab Ebm
  BD: "~ [c4,eb4,gb4] ~@3 ab3 ~ c4 ~@3 [eb4,gb4] ~@7 [ab2,ab3] ~@7 [c4,eb4,gb4] ~@4", // Cdim Ebm Ab Cdim
  BE: "~ [c4,eb4,gb4] ~@3 ab3 ~ c4 ~@3 [eb4,gb4] ~@7 [ab2,ab3] ~@6 [eb4,gb4] ~@5", // Cdim Ebm Ab Ebm
  BF: "[eb4,gb4] ~@3 [ab2,ab3] ~ c4 ~@3 [c4,eb4,gb4] ~@5 [eb4,gb4] ~@3 ab3 ~ c4 ~@3 [eb4,gb4] ~@5, ~@16 c4@3 ~@13", // Ebm Ab Cdim Ebm
  BG: "[eb4,gb4] ~@3 [ab2,ab3] ~ c4 ~@3 [c4,eb4,gb4] ~@4 [eb4,gb4] ~@3 ab3 ~ c4 ~@10, ~@15 c4@3 ~@14", // Ebm Ab Cdim Ebm
})).s("gm_piano").gain(0.42)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@6 A B@2 ~@2 C ~ D ~ E ~@5 F@2 G@2 ~ H ~ I@2 ~ J@2 ~@3 K@2 L@2 M@3 N@4 O P Q R S ~ T@2 ~@3 U V W X Y ~ Z ~@2 AA AB
  ~@2 AC AD ~ AE ~@3 AF@2 AG AH ~ AI ~ AJ@2 ~ AK@2 ~@3 AL@2 L@2 AM@3 AN@4 O P Q AO S ~ AP AQ ~@3 U AR AS AT AU ~ AV ~@2
  AW AX ~@3 AY ~@2 AZ BA ~@2 BB BC ~ BD ~@2 BE BF ~ BG BH BI ~@45
>`.pickRestart({
  A: "~@3 ab4@29", B: "[~@20 f4@15 ~@16 c4@13]/2", C: "~@5 ab3@7 ~@20", D: "~@9 ab4@16 ~@7", E: "~@27 eb4 ~@4",
  F: "[~@15 ab4@31 ~@18]/2", G: "[f4@15 ~@16 c4@14 ~@19]/2", H: "~@17 ab3@7 ~@8", I: "[~@5 ab4@4 ~@7]/2",
  J: "[~@7 g4@2 ~@6 ab4@22 ~@27]/2", K: "[~@9 db2 ~ db2@27 ~@26]/2",
  L: "[~@34 c5@10 ~@6 eb5@3 ~ eb5@2 ~@8, ~@13 eb4@15 ~@4, ~@3 c5]/2",
  M: "[~@4 e5@5 ~ ab5@2 ~@4 c5@8 ~@12 f5@4 ~@9 c5@7 ~@7 [ab4,db5]@4 ab4@6 ~@8 bb4@8 ~@7, ~@2 c5@12 ~@12 [f4,ab4]@29 ~@4 [db4,f4]@14 ~@2 g4@13 ~@8, ~@34 c5@11 ~@28 g5@16 ~@7, ~@75 bb4@4 ~@17, ~@77 eb4@14 ~@5]/3", // Db5 Fm Db
  N: "[~@3 c5@10 ~@7 eb5@3 ~ eb5@2 ~@18 ab5 ~@7 e5@2 ~@2 e5@3 ~@11 ab5@5 ~@8 c5@6 ~@6 f5 ~ db5@3 ~ [db4,ab4]@6 g5 ~ [eb4,bb4]@4 ~@4 eb5@2 ~@2 eb5@7, ~@18 c5@16 ~@2 c5@13 ~ c5@16 ~@2 c5@13 ~@14 db4@5 ~@15 [eb4,bb4]@8 ~@5, ~@28 e4@30 ~@2 [f4,ab4]@29 ~@4 f4@6 ~@2 f4@5 ~@3 g4@12 ~@7]/4", // Db5 Eb5 Fm
  O: "~@26 eb4@3 ~@3", P: "~@13 eb4 ~@2", Q: "~@5 f4@8 ~@3", R: "~@7 eb2@7 ~@2", S: "~@11 c5@3 ~@18",
  T: "[~@15 f4@8 ~@14 bb3@6 db5@2 ~@2 eb2@14 ~@3, ~@31 bb2@14 ~@19]/2", U: "~@6 db5 ~@9", V: "~@29 eb4@3",
  W: "~@13 eb4@3 ~@15 ab4", X: "~@17 f4@4 ~@11", Y: "~ f4@4 ~@27", Z: "~ gb2@3", AA: "~@4 eb4@9 ~@3", AB: "~@3 gb2",
  AC: "~@30 ab4 ~", AD: "~@3 e2", AE: "~@2 c4 ~@5", AF: "[~@19 ab4@31 ~@14]/2", AG: "~@2 f4@7 ~@7",
  AH: "~@3 c4@14 ~@15", AI: "~@20 ab3@7 ~@5", AJ: "[~@23 ab4@16 ~@25]/2", AK: "[~@9 g4@2 ~@6 ab4@22 ~@25]/2",
  AL: "[~@10 db2 db2@26 ~@27]/2",
  AM: "[~@4 e5@5 ~@2 ab5@2 ~@4 c5@8 ~@12 f5@4 ~@8 c5@7 ~@7 [ab4,db5]@4 ab4@7 ~@8 bb4@8 ~@6, ~@2 c5@12 ~@13 [f4,ab4]@29 ~@3 [db4,f4]@14 ~@3 g4@13 ~@7, ~@35 c5@11 ~@28 g5@16 ~@6, ~@19 bb4 ~@4, ~@39 eb4@7 ~@2]/3", // Db5 Fm Db
  AN: "[~@4 c5@10 ~@6 eb5@3 ~ eb5@2 ~@19 ab5 ~@7 e5@2 ~@2 e5@3 ~@11 ab5@5 ~@7 c5@6 ~@6 f5 ~ db5@3 ~@2 [db4,ab4]@6 g5 ~ [eb4,bb4]@4 ~@4 eb5@2 ~@2 eb5@6, ~@18 c5@16 ~@2 c5@13 ~@2 c5@16 ~@2 c5@13 ~@13 db4@5 ~@16 [eb4,bb4]@8 ~@4, ~@28 e4@30 ~@3 [f4,ab4]@29 ~@3 f4@6 ~@3 f4@5 ~@3 g4@12 ~@6]/4", // Db5 Eb5 Fm
  AO: "~@15 eb2@14 ~@3", AP: "~@2 f4 ~", AQ: "~@3 bb3@3 db5 ~ eb2@7 ~, bb2@7 ~@9", AR: "~@28 eb4@3 ~",
  AS: "~@12 eb4@3 ~@15 ab4 ~", AT: "~@4 f4 ~@3", AU: "f4 ~@7", AV: "~@6 gb2@25 ~", AW: "~@3 eb4@9 ~@4",
  AX: "~@11 gb2@4 ~", AY: "~@3 gb2@12 ~", AZ: "~@5 eb4@18 ~@9", BA: "~@21 gb2@8 ~@3", BB: "~@26 ab4 ~@5",
  BC: "~@5 e2@2 ~", BD: "~@3 c4 ~@28", BE: "~@20 bb3 ~@7 c4 ~@3", BF: "~@27 c4 ~@4", BG: "~@26 c4 ~@5",
  BH: "c4 ~@19 ab2 ~@11", BI: "c4 ~@18 ab2 ~@12",
})).s("gm_piano").gain(0.18)

// drums · kick
const kick = s("bd").struct(`<
  ~@14 A B@2 C ~@12 D E F@2 G@2 H@2 ~@8 I J K@3 L M@3 N O@3 P Q@3 R S@3 T S@3 T S@2 U ~@12 G@4 H@4 ~@8 V K@2 L M@3 W X Y
  O@3 Y O@3 Y O@3 Y O@3 Y O Z AA AB AC AD@2 AE AF AG ~ AH@2 AI@2 AJ@2 S AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ
  BA BB BC BD BE BF AL BG BH BI AP AQ BJ BK AT AU BL BM AX AY BN BO BB BC BP BQ BR BS ~ D
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@27 x ~@4", C: "~@7 x", D: "~@5 x ~@26", E: "~@3 x ~@12", F: "~@7 x ~@24", G: "~ x ~@2",
  H: "~@9 x ~@22", I: "~@29 x ~@2", J: "~@5 x ~@8 x ~@7 x ~@7 x ~", K: "~@3 x ~@3 x ~@3 x ~@3 x",
  L: "~@6 x ~@8 x ~@7 x ~@7 x", M: "~@7 x ~@7 x ~@7 x ~@7 x", N: "~@4 x ~@2 x", O: "x!2", P: "x ~@16 x ~@11 x ~@2",
// … 173 more lines

More by Supertramp