Strudelify

Piano Trio in D Major

Beethoven

KeyD majorTempo130 bpm
0:00/0:00
// Piano Trio in D Major — Beethoven
// 130 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5369208; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 270 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/3)

// 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.

// other · cello · "Violoncello"
const cello = note(`<
  A B C D E@2 F G H I F G J@4 K@2 ~@2 L M N@2 O@2 P Q R S T U V W X Y Z AA AB AC AD AE ~@13 AF AG AH AI ~@22 A AJ AK AL
  AM AN ~@21 AO M AO AL AP AL AP AQ AR AQ AS AT ~@4 AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BK BL BM ~ BN
  ~@5 BO BP BQ BR A B C D E@2 F G H BS BT BU BV D E@2 BW BX BY@2 BZ@2 CA@4 ~@14 CB@2 CC CD CE CF CC CG CH CI CJ@2 ~@14
  CK CI CL CI CL CM CN CO CP CQ CR CS CT CU CV@2 ~@25 CW CX CY CZ A DA DB
>`.pickRestart({
  A: "d3@3 c#3 b2 a2 ~@2 g3 ~@2 f#3 ~ e3 ~@2", B: "d3 ~@2 b3 ~ a3 ~@2 g3 ~@2 f#3 ~ d4 ~@2",
  C: "c#4 ~@2 b3 ~ a3 ~@2 g4 ~@2 f#4 ~ e4 ~@2", D: "d4 ~@10 e4@3 ~@2", E: "f4/2", F: "f#4@11 g4@2 a4@3",
  G: "a4@5 c#4@5 ~ d4@5", H: "e4@5 ~@11", I: "~@11 e4@5", J: "[d4@5 e4@32 g4@16 g4@5 ~ f#4@5]/4",
  K: "[f#4@5 b4@21 ~ g2@5]/2", L: "f#3@11 g3@2 a3@3", M: "a3@5 c#3@5 ~ d3@5", N: "b3/2", O: "g#3/2",
  P: "a3@8 a3@3 a#3@2 c4@3", Q: "c4@3 e3@2 f3@3 f3@3 g3@2 a3@3", R: "a3@3 b2@2 c3@3 ~@8", S: "~@8 a3@3 a#3@2 c4@3",
  T: "c4@3 a3@2 a#3@3 ~@8", U: "~@8 g3@3 a3@2 a#3@3", V: "a#3@3 g#3@2 a3@3 a3@3 b3@2 c4@3",
  W: "b3@3 g#3@2 a3@3 a3@3 b3@2 c4@3", X: "e3@3 e3 d3 b2@3 c#3@3 d3@2 e3@3", Y: "f#3@3 g#3@2 a3@3 b3@3 c#4@2 d#4@3",
  Z: "e4@3 d#4@2 c#4@3 b3@3 a3@2 g#3@3", AA: "b3@3 a3@2 g#3@3 f#3@3 e3@2 d#3@3",
  AB: "e3@3 d#3 c#3 b2@3 c#3@3 d#3@2 e3@3", AC: "f#3@3 g#3@2 a3@3 b3@3 c#4@2 d4@3",
  AD: "c#4@3 b3@2 a3@3 g#3@3 f#3@2 e3@3", AE: "e3@3 f#3@2 e3@3 d3@3 c#3@2 b2@3", AF: "~@5 b3@5 ~@5 e3",
  AG: "b3@5 a3@5 ~@5 a3", AH: "a3@5 g#3@5 ~@5 g#3", AI: "g#3", AJ: "f#3 ~@2 e3 ~ d3 ~@2 c4 ~@2 a#3 ~ a3 ~@2",
  AK: "a#3@11 c4@2 d4@3", AL: "d4@5 f#3@5 ~ g3@5", AM: "c3", AN: "f2@11 f3@5",
  AO: "d2@2 d3@2 ~ e2@2 d3@2 d3@2 ~ d3@2 d3@2, ~@4 d3@2 ~@5 f#2@2 ~@3",
  AP: "g2@2 g3@2 ~ a2@2 g3@2 g3@2 ~ b3@2 b3@2, ~@4 g3@2 ~@5 b2@2 ~@3", AQ: "g3@5 b2@5 ~ c3@5",
  AR: "c2@2 c3@2 ~ d2@2 c3@2 c3@2 ~ c3@2 c3@2, ~@4 c3@2 ~@5 e2@2 ~@3", AS: "~@11 g3@5", AT: "b2@5 c3@5 ~@6",
  AU: "a3@5 c3@5 ~ d3@5", AV: "c3@11 b2@5", AW: "g3@5 a#2@5 ~ c3@5", AX: "f2@8 a2 a#2 ~ c3 ~@4",
  AY: "~@3 a3 a#3 c4 ~@10", AZ: "a2@3 c3 a#2 a2 ~@2 a3 ~@2 g3 ~ f3 ~@2", BA: "c4 ~@2 a#3 ~ a3 ~@2 a4 ~@2 g4 ~ f4 ~@2",
  BB: "d3@8 d3 e3 ~ f3@3 ~@2", BC: "~@3 f3 g3 a3 ~@10", BD: "d3@3 a2 g2 f2 ~@2 f3 ~@2 e3 ~ d3 ~@2",
  BE: "a3 ~@2 g3 ~ f3 ~@2 f4 ~@2 e4 ~ d4 ~@2", BF: "e4@8 e3 f#3 ~ g#3 ~@4", BG: "~@3 g#3 a3 b3 ~@10",
  BH: "e3@3 b2 a2 g#2 ~@2 g#3 ~@2 f#3 ~ e3 ~@2", BI: "b3 ~@2 a3 ~ g#3 ~@2 d4 ~@2 c#4 ~ b3 ~@2",
  BJ: "c#4 ~@2 c#4 d4 e4 ~@2 c#4 ~@2 d4 ~ e4 ~@2", BK: "d4 ~@2 e4 d4 c#4 ~@2 e4 ~@2 d4 ~ c#4 ~@2",
  BL: "d4 ~@2 c#4 d4 e4 ~@2 c#4 ~@2 d4 ~ e4 ~@2", BM: "c#4 ~@2 d4 ~ e4 ~@2 a3 ~@2 b3 ~ c#4 ~@2",
  BN: "a2 ~@2 b2 ~ c#3 ~@2 e2 ~@2 g#2 ~ a2 ~@2", BO: "a2 ~@2 a#2 a2 g2 ~@2 a#2 ~@2 a2 ~ g2 ~@2",
  BP: "~@3 e3 d3 c#3 ~@2 e3 ~@2 d3 ~ c#3 ~@2", BQ: "~@3 a2 b2 c#3 ~@2 c#3 d3 ~ e3 ~ e3 ~ f#3",
  BR: "g3 ~@2 a3 b3 c#4 ~@2 c#4 d4 ~ e4 ~ a2 ~@2", BS: "~@11 c#3@5", BT: "d3@3 c#3 b2 a2 ~@2 g3 ~@2 f3 ~ e3 ~@2",
  BU: "d3 ~@2 a#3 ~ a3 ~@2 g3 ~@2 f3 ~ d4 ~@2", BV: "c#4 ~@2 b3 ~ a3 ~@2 g4 ~@2 f4 ~ e4 ~@2", BW: "d4@11 d#4@2 f4@3",
  BX: "f4@5 a3@5 ~ a#3@5", BY: "[c4@27 a#2@5]/2", BZ: "[a#2@21 c3@5 ~ d3@5]/2", CA: "[d#3@59 ~@5]/4", CB: "e3/2",
  CC: "a3@3 g#3 f#3 e3@3 f#3@3 g#3@2 a3@3", CD: "b3@3 c#4@2 d4@3 e4@3 f#4@2 g#4@3",
  CE: "a4@3 g#4@2 f#4@3 e4@3 d4@2 c#4@3", CF: "e4@3 d4@2 c#4@3 b3@3 a3@2 g#3@3", CG: "b3@3 c#4@2 d4@3 e4@3 f#4@2 g4@3",
  CH: "f#4@3 e4@2 d4@3 c#4@3 b3@2 a3@3", CI: "a3@3 b3@2 a3@3 g3@3 f#3@2 e3@3", CJ: "[d3@5 d4@21 ~@6]/2",
  CK: "~@5 f#3@3 g3@3 a3@2 b3@3", CL: "d3@3 e3@2 f#3@3 g3@3 a3@2 b3@3", CM: "a3@3 b3@2 c#4@3 d4@3 e4@2 f#4@3",
  CN: "d4@3 e4@2 f#4@3 g3@3 a3@2 b3@3", CO: "a3@3 g#3@2 g3@3 e3@3 c#3@2 a2@3", CP: "d3@5 ~@10 a3",
  CQ: "f#4@5 e4@5 ~@5 a3", CR: "e4@5 d4@5 ~@5 a3", CS: "d4@5 c#4@5 ~@5 c#4", CT: "c#4", CU: "~@5 c#4@5 ~@5 c#4",
  CV: "[c#4@31 ~]/2", CW: "f#3@5 d4@5 ~ c#4@5", CX: "b3@5 g4@5 ~ e4@5", CY: "a4@5 ~@11", CZ: "a2@5 ~@11",
  DA: "a3@3 ~@8 a2@3 ~@2", DB: "d2@3 ~@13",
})).s("gm_cello").gain(0.4)

// other · cello · "Violoncello" · soft notes
const cello_soft = note(`<
  ~@18 A B ~@22 C D C D C E F G H I J K L M ~@3 N O@2 P Q R S T@3 U@4 V W X Y V Z AA AB ~@6 AC AD@2 AE AF AG AH AI AJ AK
  AL AM AN AO AP AQ AR AS AT AU AV ~@39 AW AX@2 AY@2 ~@29 AZ BA@3 BB BC@3 BD BE@3 BF BG@2 ~@11 BH BI BJ BK@2 BL@2 BM BN
  BO BP BQ BR BS BT BU ~@12 BV ~ BW BX BY BZ CA CB@3 CC@4 CD@2 CE@2 CF@4 CG@4 CH CI ~@7
>`.pickRestart({
  A: "a2@3 ~@8 d4@3 ~@2", B: "~@5 e4@3 ~@3 c#4@3 ~@2", C: "a2@3 b2@2 c#3@3 d3@3 e3@2 f#3@3",
  D: "e3@3 f#3@2 e3@3 d3@3 c#3@2 b2@3", E: "e3@3 f#3@2 g#3@3 a3@3 b3@2 c#4@3", F: "a3@3 b3@2 c#4@3 d4@3 e4@2 f#4@3",
  G: "e4@3 d#4@2 d4@3 b3@3 g#3@2 e3@3", H: "a3@5 ~@11", I: "~@5 b3@9 ~ b3", J: "d4@5 c#4@5 ~@6", K: "~@5 g#3@9 ~ g#3",
  L: "b3@5 a3@5 ~@5 e3", M: "c#4@5 ~@11", N: "a3@5 g#3@5 ~@5 g#3", O: "[g#3@31 g3]/2", P: "g3", Q: "f#3@15 d4",
  R: "d4@15 d4", S: "d4@5 a3@5 ~ b3@5", T: "c#4/3", U: "a3 ~", V: "a3@3 g#3 f#3 e3 ~@2 d4 ~@2 c#4 ~ b3 ~@2",
  W: "e4 ~@2 d4 ~ c#4 ~@2 f#4 ~@2 e4 ~ d#4 ~@2", X: "e4@5 c#4@5 ~ a3@5", Y: "d4@5 b3@5 ~ e3@5",
  Z: "e4 ~@2 d4 ~ c#4 ~@2 g4@3 f#4@2 e4@3", AA: "a4@5 f#4@5 ~ d4@5", AB: "g4@5 e4@5 ~ a3@5", AC: "f3@11 g3@2 a3@3",
  AD: "a#3@11 c4@2 d4@3", AE: "g3@11 a3@2 a#3@3", AF: "a3@5 a#3@5 ~ c4@5", AG: "d4@5 d#4@5 ~ f4@5",
  AH: "g4@5 f4@5 ~ d#4@5", AI: "d4@5 c4@5 ~ a#3@5", AJ: "a3@5 e3@5 ~ f3@5", AK: "d4@5 a3@5 ~ a#3@5",
  AL: "g4@5 g#3@5 ~ a3@5", AM: "a#3@5 c3@5 ~ c#3@5", AN: "d3@3 ~@2 g3@5 ~ a3@5", AO: "a#3@5 c4@5 ~ d4@5",
  AP: "d#4@5 d4@5 ~ c4@5", AQ: "a#3@5 a3@5 ~ g3@5", AR: "f#3@5 c#3@5 ~ d3@5", AS: "a#3@5 f#3@5 ~ g3@5",
  AT: "d#4@5 f3@5 ~ f#3@5", AU: "g3@5 c3@5 ~ c#3@5", AV: "a3@5 c#3@5 ~ d3@5", AW: "~@8 e3 d3 ~ c#3 ~ c#3 ~ b2",
  AX: "[a2 ~@2 c#3 b2 a2@27]/2", AY: "[a2@3 c#3 b2 a2@27]/2", AZ: "~@11 d#3@5", BA: "f3/3", BB: "f#3", BC: "g3/3",
  BD: "g#3", BE: "a3/3", BF: "a#3", BG: "b3/2", BH: "~@11 d4@5", BI: "d4@11 d4@5", BJ: "e4@11 e4@5",
  BK: "[d4@5 d4@21 ~ a3@5]/2", BL: "a3@11 a3@5", BM: "b3@5 ~@11", BN: "~@5 a3@9 ~ a3", BO: "c4@5 b3@5 ~@6",
  BP: "~@5 f#4@9 ~ f#4", BQ: "a4@5 g4@5 ~@5 d4", BR: "b4@5 a4@5 ~@5 d4", BS: "a4@5 g4@5 ~@5 g4",
  BT: "f#4@5 e4@5 ~@5 e3", BU: "d3@3 e3@3 ~@10", BV: "d4@5 ~@11", BW: "~@15 c4", BX: "c4", BY: "b3@15 g4",
  BZ: "g4@15 g4", CA: "g4@5 d4@5 ~ e4@5", CB: "f#4/3", CC: "d4 ~", CD: "[g2@21 a2@5 ~ b2@5]/2",
  CE: "[d2@21 e2@5 ~ f#2@5]/2", CF: "g2/4", CG: "e2/4", CH: "c#4@11 d4@2 e4@3", CI: "e4@5 a3@5 ~ g3@5",
})).s("gm_cello").gain(0.15)

// chords · piano
const piano = note(`<
  A B C D E F G@2 H I J K L M N O P Q R S T U V@2 W@2 X Y@3 Z AA AB AC AD@2 AE AF AD@2 AG AH AI AJ AK AL AM AN AM AO AP
  AQ AR AQ AR AS AT AU AV AU AV AW AX AY@2 AZ BA BB BC BD@4 BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU@2 BV BW
  BX BY BZ CA CB CC CD CE CF CG CH CI CJ CK CL CM CL CM CN CO CN CO CP CQ CR CS ~ CT CU CV CW CX CY CZ DA DB DC DD DE DF
  DG DH DI DJ DK DL DM DN@2 DO@2 DP DQ DR DS DT DU DV DW DX DY DZ EA EB B C D E F G@2 EC ED EE EF EG EH EI EJ EK@2 EL EM
  EN EO EP EQ ER ES ET EU EV EW EX EY EZ FA FB FC FD FE FF FG FH FI FJ@2 FK AH FL@2 FM FN FO FP FQ FR FS FT FU FV FW FX
  FY FX FZ GA GB GC GD GE GF GG GH GI GJ GK GL AT GM GN GO GP GQ GR GS GT@2 GU GV GW GX GY@4 GZ@2 HA@2 HB HC HD HE HF HG
  HH HI HJ HK HL HM HN HO A HP HQ
>`.pickRestart({
  A: "[d2,d5]@3 [c#2,c#5] [b1,b4] [a1,a4] ~@2 [g2,g5] ~@2 [f#2,f#5] ~ [e2,e5] ~@2", // D C# B A G F# E
  B: "[d2,d5] ~@2 [b2,b5] ~ [a2,a5] ~@2 [g2,g5] ~@2 [f#2,f#5] ~ [d3,d6] ~@2", // D B A G F# D
  C: "[c#3,c#6] ~@2 [b2,b5] ~ [a2,a5] ~@2 [g3,g6] ~@2 [f#3,f#6] ~ [e3,e6] ~@2", D: "[d3,d6] ~@10 [e3,e5,e6] ~@4",
  E: "[f3,f5,f6]@3 ~@13", F: "[a#1,a#2]@15 ~",
  G: "[[d4,f#4]@3 a3@2 [d4,f#4]@3 a3@3 [d4,f#4]@2 a3@3 [e4,g4]@3 a3@2 [e4,g4]@3 a3@3 [e4,g4]@2 a3@3, [a1,a2]@25 ~@2 [a1,a2]@5]/2", // D Em A
  H: "[a2,c#3]@3 a3@2 [a2,c#3]@3 a3@3 [a2,c#3]@2 a3@3, [c#4,e4]@5 ~@11", // A C#m
  I: "[a2,c#3]@3 a3@2 [a2,c#3]@3 a3@3 [c#3,e3]@2 a3@3", // A C#m
  J: "f#4@3 a3@2 f#4@3 a3@3 f#4@2 a3@3, d3@5 [d3,f#3]@5 ~ [d3,f#3]@5", // D
  K: "f#4@3 a3@2 g4@3 a3@3 [f#3,a3]@2 d4@3, [d3,f#3]@5 [e3,g3]@5 ~ a4@5", // F#m D Em
  L: "b4 ~@2 [b3,d4]@2 g3@3 [b3,d4]@3 [g3,c#6]@2 [b3,d4,d6]@3, g3@3 ~@13, ~ b5@10 ~@5", // Bm Gdim Bm
  M: "g3@3 [b3,d4]@2 g3@3 [b3,d4]@3 [g3,a5]@2 [b3,d4,b5]@3, d6@5 g5@5 ~@6", // Bm Gsus2 Bm
  N: "a3@3 c#4@2 a3@3 [c#4,e4]@3 [a3,f#5]@2 [c#4,e4,g5]@3, b5@5 e5@5 ~@6", // C#m D C#dim
  O: "a3@3 [c#4,e4]@2 a#3@3 [c#4,e4]@3 [b3,e5]@2 [d4,d5]@3, g5@5 c#5@5 ~@6", // C#m E5 D
  P: "d5 e5 ~ d5 c#5 [g3,d5]@2 ~@2 c#5@2 ~@3 f#5@2, b3@3 d4@3 ~ b4@2 ~@3 e5@2 ~@2, ~@8 [b3,d4]@3 [g3,d5]@2 [b3,d4]@3", // G5 Bm G5 Bm
  Q: "[g3,g5]@2 ~@3 [g3,c#6]@2 ~@2 b5@2 ~@3 b5@2, ~@2 a5@2 b5@2 ~ d6@2 ~@3 d6@2 ~@2, ~@3 [b3,d4]@3 ~@2 [b3,d4]@3 [g3,c#6]@2 [b3,d4]@3", // G Gdim Bm Gdim Bm
  R: "[a3,d4,f#4,a5]@2 f#6@2 ~ a6@2 f#6@2 d6@2 ~ f#5@2 d5@2, ~@4 d6@2 ~@5 [a2,d3,f#3,a5]@3 ~@2", // D
  S: "a4@2 f#4@2 ~ [a1,a2,a3]@2 g4@2 c#4@2 ~ e4@2 c#4@2, ~@4 d4@2 ~@5 [a1,a2,a3]@3 ~@2", // A
  T: "f#4 a3 ~ f#4 a3 d2@2 a3 f#4 a3 ~ f#4 a3 d2@2 a3, d2@3 d2@2 f#4 ~@2 d2@3 d2@2 f#4 ~@2",
  U: "f#4 a3 ~ f#4 a3 e2@2 a3 g4 a3 ~ a4 a3 f#2@2 a3, d2@3 d2@2 g4 ~@2 e2@3 f#2@2 a4 ~@2",
  V: "[d4,b4] b3 ~ [d4,b4] b3 [d4,b4] ~ b3 [d4,b4] b3 ~ [d4,b4] b3 [d4,b4] ~ b3, g1@3 g2@2 g2@2 ~ g2@3 g2@2 g2@2 ~", // G
  W: "[d4,g#4] b3 ~ [d4,g#4] b3 [d4,g#4] ~ b3 [d4,g#4] b3 ~ [d4,g#4] b3 [d4,g#4] ~ b3, e2@3 e3@2 e3@2 ~ e3@3 e3@2 e3@2 ~", // Ddim
  X: "f2 a2 ~ c3 f3 f2 ~ a2 c3 f3 ~ f2 a2 c3 ~ f3, [a3,c4,a4]@5 [a4,c5,f5,a5]@5 ~@6", // Am F
  Y: "f2 a2 ~ c3 f3 f2 ~ a2 c3 f3 ~ f2 a2 c3 ~ f3, ~@5 [a4,c5,f5,a5]@5 ~@6", // F
  Z: "d2 f2 ~ a#2 d3 d2 ~ f2 a#2 d3 ~ d2 f2 a#2 ~ d3, ~@5 [d5,f5,a#5,d6]@5 ~@6", // A#
  AA: "e2 g2 ~ c3 e3 e2 ~ g2 c3 e3 ~ e2 g2 c3 ~ e3, ~@5 [c5,g5,a#5,c6]@5 ~@6", // C7
  AB: "f2 a2 ~ c3 f3 f2 ~ a2 c3 f3 ~ f2 a2 c3 ~ f3, ~@5 [c5,f5,a5,c6]@5 ~@6", // F
  AC: "f#2 a2 ~ c3 d#3 f#2 ~ a2 c3 d#3 ~ f#2 a2 c3 ~ d#3, ~@5 [c5,d#5,a5,c6]@5 ~@6", // Adim
  AD: "[~@16 [g#2,g#3]@10 ~ [b2,e3,g#3,b3,g#4,b4,e5,g#5]@5, [e2,e3]@15 ~@17, ~@5 [g#4,b4,e5,g#5]@20 ~@7]/2", // G# E
  AE: "[e3,g#3,b3,e4,g#4,b4,e5,g#5]@10 ~ [e2,g#2,b2,e3,g#4,b4,e5,g#5]@5", // E
  AF: "[b2,d#3,f#3,b3,a4,b4,d#5,f#5,a5]@10 ~ [b1,d#2,f#2,b2,a4,b4,d#5,f#5,a5]@5", // B7
  AG: "[e3,g#3,b3,e4,g#4,b4,d5,e5,g#5]@10 ~ [e2,g#2,b2,e3,b4,d5,e5,g#5,b5]@5", // E7
  AH: "[e2,g#2,b2,e3,b4,d5,e5,g#5,b5]@10 ~ [e2,g#2,b2,e3,b4,d5,e5,g#5,b5]@5", AI: "[a1,c#2,e2,a2,c#5,e5,a5,c#6]@5 ~@11",
  AJ: "~@5 [e2,e3,b4,g#5]@9 ~ [e2,e3,b4,g#5]", AK: "[a1,a2,d5,b5]@5 [a1,a2,c#5,a5]@5 ~@6",
  AL: "~@5 [e2,e3,g#5,b5]@9 ~ [e2,e3,g#5,b5]", AM: "[a1,a2,b5,d6]@5 [a1,a2,a5,c#6]@5 ~@5 [a1,a2,e5]",
  AN: "[g#1,g#2,c#6,e6]@5 [g#1,g#2,b5,d6]@5 ~@5 [a1,a2,e5]", AO: "[e2,e3,a5,c#6]@5 [e2,e3,g#5,b5]@5 ~@5 [e2,e3,d5,b5]",
  AP: "[a1,a2,c#5,a5]@3 [b1,b4]@2 [c#2,c#5]@3 [d2,d5]@3 [e2,e5]@2 [f#2,f#5]@3", // A B C# D E F#
  AQ: "[e2,e5]@3 [f#2,f#5]@2 [e2,e5]@3 [d2,d5]@3 [c#2,c#5]@2 [b1,b4]@3", // E F# E D C# B
  AR: "[a1,a4]@3 [b1,b4]@2 [c#2,c#5]@3 [d2,d5]@3 [e2,e5]@2 [f#2,f#5]@3", // A B C# D E F#
  AS: "[e2,e5]@3 [f#2,f#5]@2 [g#2,g#5]@3 [a2,a5]@3 [b2,b5]@2 [c#3,c#6]@3", // E F# G# A B C#
  AT: "[a2,a5]@3 [b2,b5]@2 [c#3,c#6]@3 [d3,d6]@3 [e3,e6]@2 [f#3,f#6]@3", // A B C# D E F#
  AU: "e6 f#6 ~ e6 f#6 g#3@2 f#6 e6 f#6 ~ e6 f#6 c#4@2 f#6, e3@3 f#3@2 e6 ~@2 a3@3 b3@2 e6 ~@2",
  AV: "e6 f6 ~ e6 f6 e6 ~ f6 e6 f6 ~ e6 f6 e6 ~ f6, d4@15 ~",
  AW: "e6 f6 ~ e6 f6 e6 ~ f6 e6 f6 ~ e6 f6 e6 ~ f6, e3@15 ~",
  AX: "e6 f#6 ~ e6 f#6 e6 ~ f#6 e6 f#6 ~ e6 f#6 e6 ~ f#6, a2@15 ~",
  AY: "[d2,f#6] [a2,g6] ~ [d2,f#6] [a2,g6] [d2,f#6] ~ [a2,g6] [d2,f#6] [a2,g6] ~ [d2,f#6] [a2,g6] [d2,f#6] ~ [a2,g6]", // D A7 D A7 D A7 D A7 …
  AZ: "[d2,f#6] [a2,g#6] ~ [d2,f#6] [a2,g#6] [d2,f#6] ~ [a2,g#6] [d2,f#6] [a2,g#6] ~ [d2,f#6] [a2,g#6] [d2,f#6] ~ [a2,g#6]", // D Amaj7 D Amaj7 D Amaj7 D Amaj7 …
  BA: "[a1,a6] [a2,e6] ~ [a1,c#6] [a2,a5] [a1,e6] ~ [a2,c#6] [a1,a5] [a2,e5] ~ [a1,c#6] [a2,a5] [a1,e5] ~ [a2,c#5]", // A A5 A A5 A A5 A A5 …
  BB: "[a1,a5] [a2,e5] ~ [a1,c#5] [a2,a4] [a1,e5] ~ [a2,c#5] [a1,a4] [a2,e4] ~ [a1,c#5] [a2,a4] [a1,e4] ~ [a2,c#4]", // A A5 A A5 A A5 A A5 …
  BC: "[a1,a4] [a2,e4] ~ [a1,c#4] [a2,a3] [a1,e4] ~ [a2,c#4] [a1,a3] [a2,e3] ~ [a1,c#4] [a2,a3] [a1,e3] ~ [a2,c#3]", // A A5 A A5 A A5 A A5 …
  BD: "[a1,a2] ~", BE: "a2@5 e3@5 ~ b2@5", BF: "c#3@5 a3@5 ~ f#3@5",
  BG: "~@3 c#5 b4 a4 ~@2 e5 ~@2 d5 ~ c#5 ~@2, e3@5 ~@6 e2@5",
  BH: "d5 ~@2 g#4 ~ b4 ~@2 b5 ~@2 a5 ~ g#5 ~@2, e3@5 ~@6 e2@5", BI: "a1@5 a2@5 ~ b1@5, a5 ~@15",
  BJ: "c#2@5 a2@5 ~ g2@5", BK: "~@3 f#5 e5 d5 ~@2 a5 ~@2 g5 ~ f#5 ~@2, f#2@5 ~@6 a1@5",
  BL: "g5@3 c#5@2 e5@3 e6@3 d6@2 c#6@3, a2@5 ~@6 a1@5", BM: "[d2,d6]@3 c#2 b1 a1 ~@2 g2 ~@2 f#2 ~ e2 ~@2",
  BN: "f#2 ~@2 e2 ~ d2 ~@2 c3 ~@2 a#2 ~ a2 ~@2", BO: "a#2@11 c3@2 d3@3", BP: "d3@5 f#2@5 ~ g2@5",
  BQ: "g5@11 a5@2 a#5@3, c2@15 ~", BR: "f1 f2 ~ f1 f2 f1 ~ f2 f1 f2 ~ f1 f2 f1 ~ f2, c6@5 e5@5 ~ f5@5",
  BS: "f1 f2 ~ f1 f2 f1 ~ f2 f1 f2 ~ f1 f2 f1 ~ f2, c6@5 d#5@5 ~ f5@5",
  BT: "f1 f2 ~ f1 f2 f1 ~ f2 f1 f2 ~ f1 f2 f1 ~ f2, d5@5 f5@5 ~ a#4@5",
  BU: "f1 f2 ~ f1 f2 f1 ~ f2 f1 f2 ~ f1 f2 f1 ~ f2, e4@5 a#4@5 ~ g4@5",
  BV: "f4 f3 ~ f4 f3 f4 ~ f3 f4 f3 ~ f4 f3 f4 ~ f3, f1@5 g1@5 ~ a1@5",
  BW: "f4 f3 ~ f4 f3 f4 ~ f3 f4 f3 ~ f4 f3 f4 ~ f3, a#1@5 c2@5 ~ d2@5",
  BX: "f4 f3 ~ f4 f3 f4 ~ f3 f4 f3 ~ f4 f3 f4 ~ f3, d#2@5 d2@5 ~ c2@5",
  BY: "f4 f3 ~ f4 f3 f4 ~ f3 f4 f3 ~ f4 f3 f4 ~ f3, a#1@5 a1@5 ~ g1@5",
  BZ: "f2 f3 ~ f2 f3 f2 ~ f3 f2 f3 ~ f2 f3 f2 ~ f3, [f4,a4]@5 [g4,a#4]@5 ~ [a4,c5]@5", // F Gm Am
  CA: "f2 f3 ~ f2 f3 f2 ~ f3 f2 f3 ~ f2 f3 f2 ~ f3, [a#4,d5]@5 [c5,f5]@5 ~ [d5,f5]@5", // A# F5 Dm
  CB: "f2 f3 ~ f2 f3 f2 ~ f3 f2 f3 ~ f#2 f#3 f#2 ~ f#3, [d#5,g5]@5 [d5,f5]@5 ~ [c5,d#5]@5", // D# Dm Cm
  CC: "g2 g3 ~ g2 g3 c2 ~ c3 c2 c3 ~ c#2 c#3 c#2 ~ c#3, [a#4,d5]@5 [a4,c5]@5 ~ [g4,a#4]@5", // A# Am Gm
  CD: "[d2,f#4,a4]@5 d4 ~ d3 d4 d3 ~ d4 d3 d4 ~ d3, ~@5 e2@5 ~ f#2@5", // D
  CE: "d4 d3 ~ d4 d3 d4 ~ d3 d4 d3 ~ d4 d3 d4 ~ d3, g2@5 a2@5 ~ a#2@5",
  CF: "d4 d3 ~ d4 d3 d4 ~ d3 d4 d3 ~ d4 d3 d4 ~ d3, c3@5 a#2@5 ~ a2@5",
  CG: "d4 d3 ~ d4 d3 d4 ~ d3 d4 d3 ~ d4 d3 d4 ~ d3, g2@5 f#2@5 ~ e2@5",
  CH: "d2 d3 ~ d2 d3 d2 ~ d3 d2 d3 ~ d2 d3 d2 ~ d3, [d4,f#4]@5 [e4,g4]@5 ~ [f#4,a4]@5", // D Em F#m
  CI: "d2 d3 ~ d2 d3 d2 ~ d3 d2 d3 ~ d2 d3 d2 ~ d3, [g4,a#4]@5 [a4,d5]@5 ~ [a#4,d5]@5", // Gm D5 A#
  CJ: "d2 d3 ~ d2 d3 d2 ~ d3 d2 d3 ~ d2 d3 d2 ~ d3, [c5,d#5]@5 [a#4,d5]@5 ~ [a4,c5]@5", // Cm A# Am
  CK: "d2 d3 ~ d2 d3 d2 ~ d3 d2 d3 ~ d2 d3 d2 ~ d3, a#4@5 a4@5 ~ g4@5",
  CL: "[f#3,f#4] [a3,d4] ~ [f#3,f#4] [a3,d4] [e3,a4] ~ [g3,e4] [e3,a4] [g3,e4] ~ [d3,a4] [f#3,f#4] [d3,a4] ~ [f#3,f#4]", // F# D5 F# D5 A5 C A5 C …
  CM: "[a4,a5]@5 [c#4,c#5]@5 ~ [d4,d5]@5, [d2,d3]@15 ~", // A C# D
  CN: "[b2,b4] [d3,g4] ~ [b2,b4] [d3,g4] [a2,d5] ~ [c3,a4] [a2,d5] [c3,a4] ~ [g2,d5] [b2,b4] [g2,d5] ~ [b2,b4]", // B G5 B G5 D5 F D5 F …
  CO: "[d5,d6]@5 [f#4,f#5]@5 ~ [g4,g5]@5, [g1,g2]@15 ~", // D F# G
  CP: "[e3,e4] [g3,c4] ~ [e3,e4] [g3,c4] [d3,g4] ~ [f3,d4] [d3,g4] [f3,d4] ~ [c3,g4] [e3,e4] [c3,g4] ~ [e3,e4]", // E C5 E C5 G5 Dm G5 Dm …
  CQ: "[g4,g5]@5 [b3,b4]@5 ~ [c4,c5]@5, [c2,c3]@15 ~", // G B C
  CR: "[c2,e4] [c3,c4] ~ [c2,e4] [c3,c4] [d2,f4] ~ [c3,c4] [d2,f4] [c3,c4] ~ e2 c3 e2 ~ c3, ~@11 g4@5", // C Dm C Dm C
  CS: "[g2,g3,b3]@5 [b1,b2,c4]@5 ~ [c2,c3]@5", CT: "g4@5 e4@5 ~ c#4@5", CU: "e4@11 d4@5", CV: "f4@5 d4@5 ~ e4@5",
  CW: "e3@5 g2@5 ~ [a2,c#4]@5, d4@11 ~@5", CX: "~@3 d#6 d6 c6 ~@2 d#6 ~@2 d6 ~ c6 ~@2, g2@11 f#2@5",
  CY: "d3@5 f2@5 ~ g2@5", CZ: "~@3 c#6 c6 a#5 ~@2 c#6 ~@2 c6 ~ a#5 ~@2, f2@11 e2@5",
  DA: "a5 ~@2 a4 g4 f4 ~@2 [f2,c5] g2 ~ [a2,a#4] ~ a4 ~@2, [f#1,f2] ~", // F5 A#maj7 F#maj7
  DB: "a5@3 f3 g3 f5@3 c6@3 a#5@2 a5@3, ~@3 g5@2 a3 ~@10",
  DC: "f2@3 a2 g2 f2 ~@2 [c3,a5] a#5 ~ [a#2,c6] ~ a2 ~@2, f6 ~", // F A#sus2
  DD: "a3 ~@2 [g3,f5] g5 [f3,a5] ~@2 c4 ~@2 a#3 ~ a3 ~@2", DE: "d6@3 f4 e4 d4 ~@2 [d2,a4] e2 ~ [f2,g4] ~ f4 ~@2, d2 ~",
  DF: "f5 ~@2 [d3,e5] e3 [f3,d5] ~@2 a5 ~@2 g5 ~ f5 ~@2", DG: "d2@3 a1 g1 f1 ~@2 [f2,f5] g5 ~ [e2,a5] ~ d2 ~@2, d6 ~",
  DH: "a2 ~@2 [g2,d5] e5 f5@3 f3 ~@2 e3 ~ d3 ~@2, ~@5 f2 ~@10", // G5
  DI: "e5@3 g#4 f#4 e4 ~@2 [e2,b4] f#2 ~ [g#2,a4] ~ g#4 ~@2, e3 ~", // E5 Amaj7
  DJ: "g#5 ~@2 [e3,f#5] f#3 [g#3,e5] ~@2 b5 ~@2 a5 ~ g#5 ~@2", // Esus2 C#m
  DK: "e2@3 g#2 f#2 e2 ~@2 [b2,b5] c#6 ~ [a2,d6] ~ g#2 ~@2, d6 ~", // B D5
  DL: "g#3 ~@2 [f#3,g#5] a5 [e3,b5] ~@2 b3 ~@2 a3 ~ g#3 ~@2", // F#sus2 E5
  DM: "[a3,a5] ~@2 [a3,e5] [b3,d5] [c#4,c#5] ~@2 [a3,e5] ~@2 [b3,d5] ~ [c#4,c#5] ~@2", // A A5 Bm C# A5 Bm C#
  DN: "[b3 ~@2 c#4 b3 a3 ~@2 c#4 ~@2 b3 ~ a3 ~@2 b3 ~@2 [a3,e5] [b3,d5] [c#4,c#5] ~@2 [a3,e5] ~@2 [b3,d5] ~ [c#4,c#5] ~@2, g#5@5 a5@13 ~@14]/2", // A5 Bm C# A5 Bm C#
  DO: "[b3 ~@2 c#4 b3 a3 ~@2 c#4 ~@2 b3 ~ a3 ~@2 b3 ~@2 [a3,e5] [b3,d5] [c#4,c#5] ~@2 [a3,e5] ~@2 [b3,d5] ~ [c#4,c#5] ~@2, b5@5 c#6@13 ~@14]/2", // A5 Bm C# A5 Bm C#
  DP: "a3 ~@2 b3 ~ c#4 ~@2 e6 d6 ~ c#6@3 ~@2, e6@5 ~@11",
  DQ: "e3 ~@2 [g#3,c#6] b5 a5@3 c#3 ~@2 d3 ~ [e3,e5] ~ d5, ~@5 a3 ~@10", DR: "c#5@3 ~@5 e5 d5 ~ c#5@3 ~@2",
  DS: "c#2 ~@2 [d2,c#5] b4 a4@3 a1 ~@2 b1 ~ c#2 ~@2, ~@5 e2 ~@10", DT: "a1 ~@4 d#3@3 f#3 e3 ~ d#3@5",
  DU: "g4@3 c5 a#4 a4@3 c5 a#4 ~ a4@2 c5 ~ a#4, e3@5 e3@5 ~ d3@5", DV: "[c#3,a4]@3 ~@2 d#3@3 f#3 e3 ~ d#3@5",
  DW: "g5@3 c6 a#5 a5@3 c6 a#5 ~ a5@2 c6 ~ a#5, e3@5 e3@5 ~ d3@5",
  DX: "[c#3,a5] ~@2 [a#1,a#5] [a1,a5] [g1,g5] ~@2 [a#1,a#5] ~@2 [a1,a5] ~ [g1,g5] ~@2", // F#m A# A G A# A G
  DY: "~@3 [e2,e6] [d2,d6] [c#2,c#6] ~@2 [e2,e6] ~@2 [d2,d6] ~ [c#2,c#6] ~@2", // E D C# E D C#
  DZ: "~@3 [a1,g6] [b1,f#6] [c#2,e6] ~@2 [c#2,e6] [d2,d6] ~ [e2,c#6] ~ [e2,g5] ~ [f#2,f#5]", // A7 B5 C#m D C#m Em F#
  EA: "[g2,e5] ~@2 [a2,g5] [b2,f#5] [c#3,e5] ~@2 [c#3,e5] [d3,d5] ~ [e3,c#5] ~ [a2,e5,c#6] ~@2", // C A7 B5 C#m D C#m A
  EB: "[d2,d3,d5,d6]@3 [c#2,c#5] [b1,b4] [a1,a4] ~@2 [g2,g5] ~@2 [f#2,f#5] ~ [e2,e5] ~@2", // D C# B A G F# E
  EC: "[a2,c#3]@5 [a2,c#3]@5 ~ d5@2 e5@3, c#5@10 ~ [a2,c#3]@5", ED: "[a2,c#3,e5]@5 [b2,d3,a4]@5 ~ [c#3,e3,g4]@5",
// … 84 more lines

More by Beethoven