Strudelify

We Three Kings

John Henry Hopkins Jr.

KeyC majorTempo196 bpm
0:00/0:00
// We Three Kings — John Henry Hopkins Jr.
// 196 bpm, 3/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 3/4 at bar 1) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5358948; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 193 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(196/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.

// chords · piano
const piano = note(`<
  A B C D E F G H I J K ~@6 L M N O L M N O P Q R S T U O V W@2 X W@3 X W@2 Y Z Y W@2 X AA AB@2 AC AB@3 AC AB@2 AD AE AF
  AG AH AB AI AJ AK AL AM AJ AK AL AM AJ AN AO AN AJ AK AL AP AQ AR AQ AS AT AU AV AW AX AY AZ@2 BA BB ~ BC BD BE BF BG
  BD BE BF BG BH BI BJ BK BL BM BG BN BO@2 BP BO@3 BP BO@2 BQ BR BQ BO@2 BP BS BT BU BT BV BW BX BY BZ CA CB CC CD CE CF
  CG CH CI CJ CK CL CI CJ CK CM CN CO CP CQ CR CS CT CU CV CW CX CY CV CW CX CY CZ DA DB DA CV CW CX CY DC DD DE DC DF
  DG DH DI DJ DK@3 DL@3 DM
>`.pickRestart({
  A: "~@5 a3@3 b3@3 c4@2 d4@3",
  B: "e4 [e4,f4] f4 [e4,f4] e4 [e4,f4] f4 [e4,f4] e4 [e4,f4] f4 [e4,f4] e4 [e4,f4] f4 [e4,f4]", // Fmaj7
  C: "e4 [e4,f4] f4 [e4,f4] e4 a#3@3 c4@3 d4@2 e4@3, ~@5 f4 ~@10", // Fmaj7
  D: "f4 [f4,g4] g4 [f4,g4] f4 [f4,g4] g4 [f4,g4] f4 [f4,g4] g4 [f4,g4] f4 [f4,g4] g4 [f4,g4]", // Fsus2
  E: "f4 [f4,g4] g4 [f4,g4] f4 c4@3 d4@3 e4@2 g4@3, ~@5 g4 ~@10", F: "g#4@5 c4@3 d4@3 e4@2 g#4@3",
  G: "a4@5 c4@3 d4@3 e4@2 a4@3", H: "~@3 a#3@2 ~@3 b3@3 ~@2 c4@3, a#4@5 b4@5 ~ c5@5",
  I: "~@3 c#4@2 ~@3 d4@3 ~@2 d#4@3, c#5@5 d5@5 ~ d#5@5", J: "[e4,e5]@3 b4@2 a4@3 b4@3 a4@2 e4@3",
  K: "e4@3 b3@2 a3@3 b3@3 a3@2 e3@3", L: "e4@10 ~ d4@5", M: "c4@10 ~ a3@5", N: "b3@8 c4@3 b3@5", O: "a3@15 ~",
  P: "c4@10 ~ c4@5", Q: "d4@10 ~ d4@5", R: "e4@10 ~ e4@5", S: "g4@5 f4@5 ~ e4@5", T: "d4@5 e4@5 ~ d4@5",
  U: "c4@10 ~ b3@5", V: "b3@10 ~ d4@5", W: "c3@5 [e3,c4]@5 ~ [g3,e4]@5", X: "c3@5 [f3,c4]@5 ~ [a3,f4]@5",
  Y: "b2@5 [d3,b3]@5 ~ [g3,d4]@5", Z: "a2@5 [e3,c4]@5 ~ [a3,e4]@5", AA: "c3@5 [e3,c4]@5 ~ [c4,g4]@5",
  AB: "~@5 [c5,e5]@3 ~@3 [e5,a5]@3 ~@2, a4@15 ~", AC: "~@5 [b4,e5]@3 ~@3 [e5,g#5]@3 ~@2, g#4@15 ~",
  AD: "~@5 [b4,d5]@3 ~@3 [d5,g5]@3 ~@2, g4@15 ~", AE: "~@5 [c5,e5]@3 ~@3 [e5,g5]@3 ~@2, g4@15 ~",
  AF: "~@5 [e5,g5]@3 ~@3 [g5,c6]@3 ~@2, g4@15 ~", AG: "~@5 [d5,f5]@3 ~@3 [f5,a5]@3 ~@2, a4@15 ~",
  AH: "~@5 [c5,e5]@3 ~@3 [e5,g#5]@3 ~@2, e4@15 ~", AI: "g4@5 [b3,d5,g5]@3 ~@3 [d4,b4,d5]@2 g4@3",
  AJ: "c5@3 g5@2 c6@3 g5@3 c5@2 g5@3, c4@10 ~ c4@5", AK: "c5@3 g5@2 c6@3 g5@3 c5@2 g5@3, c4@10 ~ g3@5",
  AL: "c5@3 a5@2 c6@3 a5@3 c5@2 a5@3, c4@10 ~ a3@5", AM: "c5@3 g5@2 c6@3 g5@3 c5@2 g5@3, c4@15 ~",
  AN: "b4@3 g5@2 d6@3 g5@3 b4@2 g5@3, d4@10 ~ e4@5", AO: "a4@3 a5@2 e6@3 a5@3 a4@2 a5@3, f4@10 ~ e4@5",
  AP: "c5@3 b4@2 c5@3 d5@3 e5@2 f5@3, c4@15 ~", AQ: "g5@3 e5@2 d5@3 c5@3 b4@2 a4@3, c4@5 g4@5 ~ c4@5",
  AR: "a5@3 f5@2 e5@3 d5@3 f5@2 a5@3, d4@5 a4@5 ~ d4@5", AS: "f5@3 d5@2 c5@3 b4@3 d5@2 f5@3, b3@5 g4@5 ~ b3@5",
  AT: "e5@3 c5@2 b4@3 g4@3 f4@2 e4@3, c4@5 e4@5 ~ c4@5", AU: "d5@3 b4@2 a4@3 g4@3 b4@2 d5@3, b3@5 d4@5 ~ b3@5",
  AV: "c5@3 a4@2 g4@3 f4@3 e4@2 g4@3, c4@5 e4@5 ~ c4@5", AW: "b4@3 g4@2 f4@3 e4@3 b4@2 d5@3, b3@5 d4@5 ~ b3@5",
  AX: "c5@3 g4@2 b4@3 g4@3 c5@2 g4@3, c4@5 c4@5 ~ c4@5", AY: "d5@3 g4@2 c5@3 g4@3 d5@2 g4@3, d4@5 d4@5 ~ d4@5",
  AZ: "d#5@3 f#4@2 c#5@3 f#4@3 d#5@2 f#4@3, d#4@5 d#4@5 ~ d#4@5",
  BA: "e4 g#4 ~ b4 g#4 e5 ~ b4 g#4 e4 ~ b4 g#4 e4 ~ b3, e5@5 ~@11",
  BB: "g#4 e4 ~ b3 g#3 e4 ~ b3 g#3 e3 ~ b3 g#3 e3 ~ b2", BC: "~@5 e4@5 ~ e4@5", BD: "[e3,e4]@10 ~ [d3,d4]@5",
  BE: "[c3,c4]@10 ~ [a2,a3]@5", BF: "[b2,b3]@8 [c3,c4]@3 [b2,b3]@5", BG: "[a2,a3]@15 ~", BH: "[c3,c4]@10 ~ [c3,c4]@5",
  BI: "[d3,d4]@10 ~ [d3,d4]@5", BJ: "[e3,e4]@10 ~ [e3,e4]@5", BK: "[g3,g4]@5 [f3,f4]@5 ~ [e3,e4]@5",
  BL: "[d3,d4]@5 [e3,e4]@5 ~ [d3,d4]@5", BM: "[c3,c4]@10 ~ [b2,b3]@5", BN: "[b2,b3]@10 ~ [d3,d4]@5",
  BO: "c5 g4 ~ e4 g4 c3@2 g4 e4 g4 ~ c5 g4 g3@2 g4, c3@3 g3@2 c5 ~@2 g3@3 c3@2 e4 ~@2",
  BP: "c5 a4 ~ f4 a4 c3@2 a4 f4 a4 ~ c5 a4 a3@2 a4, c3@3 a3@2 c5 ~@2 a3@3 c3@2 f4 ~@2",
  BQ: "b4 g4 ~ d4 g4 b2@2 g4 d4 g4 ~ b4 g4 g3@2 g4, b2@3 g3@2 b4 ~@2 g3@3 b2@2 d4 ~@2",
  BR: "c5 a4 ~ e4 a4 c3@2 a4 e4 a4 ~ c5 a4 a3@2 a4, c3@3 a3@2 c5 ~@2 a3@3 c3@2 e4 ~@2",
  BS: "c5 g4 ~ e4 g4 c3@2 e4 c4 e4 ~ c4 g3 e3 ~ b2, c3@3 g3@2 g4 ~@2 g3@3 ~@5",
  BT: "g2 g3 ~ f#3 g3 f#3 ~ g3 f#3 g3 ~ f#3 g3 f#3 ~ g3", BU: "a2 a3 ~ g#3 a3 g#3 ~ a3 g#3 a3 ~ g#3 a3 g#3 ~ a3",
  BV: "f2 f3 ~ e3 f3 f#2 ~ f#3 f3 f#3 ~ g2 g3 f#3 ~ g3", BW: "e2 e3 ~ d#3 e3 d#3 ~ e3 d#3 e3 ~ d#3 e3 d#3 ~ e3",
  BX: "d2 d3 ~ c#3 d3 c#3 ~ d3 c#3 d3 ~ c#3 d3 c#3 ~ d3", BY: "c2 c3 ~ b2 c3 b2 ~ c3 b2 c3 ~ b2 c3 b2 ~ c3",
  BZ: "b1 b2 ~ a#2 b2 a#2 ~ b2 a#2 b2 ~ a#2 b2 a#2 ~ b2", CA: "a1 a2 ~ g#2 a2 a1 ~ a2 g#2 a2 ~ a1 a2 g#2 ~ a2",
  CB: "a1 a2 ~ g#2 a2 a3@2 a2 g#2 a2 ~ a1 a2 g#2 ~ a2, a3@3 ~@2 a1 ~@5 a3@3 ~@2",
  CC: "d2 d3 ~ c#3 d3 a3@2 d3 c#3 d3 ~ d2 d3 c#3 ~ d3, a3@3 ~@2 d2 ~@5 a3@3 ~@2",
  CD: "b1 b2 ~ a#2 b2 b3@2 b2 a#2 b2 ~ b1 b2 a#2 ~ b2, b3@3 ~@2 b1 ~@5 b3@3 ~@2",
  CE: "e2 e3 ~ d#3 e3 f3@7 e3 d3 ~ c3, b3 ~@3", CF: "b2 c3 ~ b2 a2 g#2 ~ a2 g#2 f2 ~ e2 f2 e2 ~ d#2", CG: "e2@5 ~@11",
  CH: "[e2,e3,e4]@5 [e2,e3,e4,e5]@5 ~ [e3,e4,e5,e6]@5", // E
  CI: "e4@3 e5@2 d#5@3 d5@3 d5@2 c#5@3, a2@5 [c3,e3]@5 ~ [c3,e3]@5", // C
  CJ: "c5@3 b4@2 b4@3 a#4@3 a#4@2 a4@3, a2@5 [c3,e3]@5 ~ [c3,e3]@5", // C
  CK: "b4@3 a4@2 g#4@3 c5@3 b4@2 g#4@3, g#2@5 [b2,e3]@5 ~ [b2,e3]@5", // E5
  CL: "a4@3 b4@2 c5@3 c#5@3 d5@2 d#5@3, a2@5 [c3,e3]@5 ~ [c3,e3]@5", // C
  CM: "a4@3 g#4@2 a4@3 g#4@3 a4@2 b4@3, a2@5 [c3,e3]@5 ~ [c3,e3]@5", // C
  CN: "c5@3 b4@2 a#4@3 a4@3 c5@2 a4@3, a2@5 [c3,f3]@5 ~ [c3,f3]@5", // F5
  CO: "d5@3 c#5@2 c5@3 b4@3 d5@2 b4@3, b2@5 [d3,g3]@5 ~ [d3,g3]@5", // G5
  CP: "e5@3 d#5@2 d5@3 c5@3 e5@2 c5@3, c3@5 [e3,g3]@5 ~ [e3,g3]@5", // Em
  CQ: "g5@3 f#5@2 f5@3 d5@3 e5@2 c5@3, c3@5 [e3,g3]@5 ~ [e3,g3]@5", // Em
  CR: "d4@3 d5@2 e5@3 d#5@3 d5@2 c#5@3, d3@5 [f3,a3]@5 ~ [f3,a3]@5", // F
  CS: "c4@3 c5@2 d5@3 c5@3 b4@2 g#4@3, e3@5 [a3,c4]@5 ~ [g#3,b3]@5", // Am G#m
  CT: "a3@3 a4@2 g#4@3 a4@3 a#4@2 a4@3, a2@5 [c3,e3]@5 ~ [c3,e3]@5", // C
  CU: "b4@3 a#4@2 a4@3 g4@3 d5@2 b4@3, g2@5 [b2,d3]@5 ~ [b2,d3]@5", // Bm
  CV: "[e3,g3,c4]@5 [e4,g4,c5]@5 ~ [c3,e5,g5,c6]@5, c3@5 ~@3", // C
  CW: "[e5,g5,c6]@5 [e4,g4,c5]@5 ~ [g2,e3,g3,c4]@5, c3@5 ~@3", // C
  CX: "[f3,a3,c4]@5 [f4,a4,c5]@5 ~ [a2,f5,a5,c6]@5, c3@5 ~@3", CY: "[e5,g5,c6]@5 [e4,g4,c5]@5 ~ [e3,g3,c4]@5, c3@15 ~",
  CZ: "[g3,c4,e4]@5 [g4,c5,e5]@5 ~ [c3,g5,c6,e6]@5, c3@5 ~@3", // C
  DA: "[g5,b5,d6]@5 [g4,b4,d5]@5 ~ [e3,g3,b3,d4]@5, d3@5 ~@3", DB: "[a3,c4]@5 [e4,a4,c5]@5 ~ [e3,e5,a5,c6]@5, f3@5 ~@3",
  DC: "[c3,e3,g3,c4]@5 [e3,g3,c4,e4,g4]@5 ~ [e3,g3,c4,e4,g4]@5", // C
  DD: "[c3,f3,a3,c4]@5 [f3,a3,c4,f4,a4]@5 ~ [f3,a3,c4,f4,a4]@5", // F
  DE: "[b2,d3,g3,b3]@5 [d3,g3,b3,d4,g4]@5 ~ [d3,g3,b3,d4,g4]@5", // G
  DF: "[g2,c4,e4,g4]@5 a2@3 b2@3 c3 d3 e3 ~ f3, ~@5 [c4,e4,g4]@5 ~ [c4,e4,g4]@5", // C
  DG: "[g3,c4,e4,g4]@5 f3@3 e3@3 d3 c3 b2 ~ a2, ~@5 [c4,e4,g4]@5 ~ [c4,e4,g4]@5", // C
  DH: "g2@3 d3@2 c3@3 f3@3 e3@2 c3@3, [c4,d4,g4]@5 [c4,d4,g4]@5 ~ [c4,d4,g4]@5", // Csus2
  DI: "d3@3 c3@2 b2@3 f3@3 e3@2 d3@3, [b3,d4,g4]@5 [b3,d4,g4]@5 ~ [b3,d4,g4]@5", // G
  DJ: "[c3,c4,e4,g4]@3 g3@2 f3@3 e3@3 d3@2 e3@3", DK: "c3@3 g3@2 f3@3 e3@3 d3@2 e3@3, [c4,e4,g4]@5 ~@11",
  DL: "[c2 c3 ~ c2 c3 c2 ~ c3 c2 c3 ~ c2 c3 c2 ~ c3 c2 c3 ~ c2 c3 c2 ~ c3 c2 c3 ~ c2 c3 c2 ~ c3 c2 c3 ~ c2 c3 c2 ~ c3 c2 c3 ~ c2 c3 c2 ~ c3, [e3,g3,c4]@23 ~]/3", // C
  DM: "[c2,c3,e3,g3,c4] ~@3", // C
})).s("gm_piano").gain(0.4)

// chords · piano
const piano_2 = note(`<
  ~ A B C D E F G H I ~ J K L M L M L@2 M L@3 M L@2 N O@2 P Q L R S T U V S T U V S W X W S T U Y Z AA AB AC Z AA AB AC
  AD AE AF AG AH AI AC AJ AK@2 AL AK@3 AL AK@2 AM AN AM AK@2 AL AK@2 AO AK AM AK AP AK AP AQ AR AS@2 AT ~ AU AV AW@2 AX
  AW AY@2 AZ AY BA BB BC@2 BD BE BF BB BG BH BI BJ BG BH BI BJ BG BK BL BK BG BH BI BJ BM BN BM BO BP BQ BR BS BT BU BV
  BW BX ~ BY BZ CA CB CC CD CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CM CN CO CP CM CQ CR CS CM CN CO CP CT CU CV
  CW CX CY@3 CZ DA DB DC DD@3 DE
>`.pickRestart({
  A: "~@5 a2@3 b2@3 c3@2 d3@3",
  B: "e3 [e3,f3] f3 [e3,f3] e3 [e3,f3] f3 [e3,f3] e3 [e3,f3] f3 [e3,f3] e3 [e3,f3] f3 [e3,f3]", // Fmaj7
  C: "e3 [e3,f3] f3 [e3,f3] e3 a#2@3 c3@3 d3@2 e3@3, ~@5 f3 ~@10", // Fmaj7
  D: "f3 [f3,g3] g3 [f3,g3] f3 [f3,g3] g3 [f3,g3] f3 [f3,g3] g3 [f3,g3] f3 [f3,g3] g3 [f3,g3]", // Fsus2
  E: "g#3@3 e3@2 [g#2,e3]@5 ~ [g#2,e3]@5", F: "a3@3 e3@2 [a2,e3]@5 ~ [a2,e3]@5", G: "[a#2,a#3]@5 b2@5 ~ c3@5",
  H: "c#3@5 d3@5 ~ d#3@5", I: "[e3,e5]@3 ~@13", J: "e3@3 g#3@2 b3@3 e4@3 d#4@2 e4@3",
  K: "f4@3 e4@2 b3@3 g#3@3 e3@2 b2@3", L: "a2@5 [c3,e3]@5 ~ [c3,e3]@5", M: "e2@5 [g#2,b2]@5 ~ [g#2,b2]@5",
  N: "b2@5 [d3,g3]@5 ~ [d3,g3]@5", O: "c3@5 [e3,g3]@5 ~ [e3,g3]@5", P: "f2@5 [a2,d3]@5 ~ [a2,d3]@5",
  Q: "e2@5 [a2,c3]@5 ~ [g#2,b2]@5", R: "g2@5 ~@3 d4 e4 ~ f4 g4 a4 ~ b4, ~@5 [b2,d3]@5 ~ [d3,g3]@5",
  S: "c4@3 e4@2 g4@3 e4@3 g4@2 e4@3, c5@10 ~ c5@5", T: "c4@3 e4@2 g4@3 e4@3 ~@2 e4@3, c5@10 ~ g4@5",
  U: "c4@3 f4@2 a4@3 f4@3 ~@2 f4@3, c5@10 ~ a4@5", V: "c4@3 e4@2 g4@3 e4@3 g4@2 e4@3, c5@15 ~",
  W: "b3@3 d4@2 g4@3 d4@3 g4@2 d4@3, d5@10 ~ e5@5", X: "c4@3 e4@2 a4@3 e4@3 a4@2 e4@3, f5@10 ~ e5@5",
  Y: "c4@3 g4@2 f4@3 e4@3 c4@2 b3@3, c5@15 ~", Z: "e3@10 ~ d3@5", AA: "c3@10 ~ a2@5", AB: "b2@8 c3@3 b2@5",
  AC: "a2@15 ~", AD: "c3@10 ~ c3@5", AE: "d3@10 ~ d3@5", AF: "e3@10 ~ e3@5", AG: "g3@5 f3@5 ~ e3@5",
  AH: "d3@5 e3@5 ~ d3@5", AI: "c3@10 ~ b2@5", AJ: "b2@10 ~ d3@5", AK: "~@5 [e3,g3]@5 ~ [e3,g3]@5, c3@15 ~",
  AL: "~@5 [f3,a3]@5 ~ [f3,a3]@5, f2@15 ~", AM: "~@5 [d3,g3]@5 ~ [d3,g3]@5, b2@15 ~",
  AN: "~@5 [e3,a3]@5 ~ [e3,a3]@5, a2@15 ~", AO: "~@5 [f3,a3]@5 ~ [f3,a3]@5, d3@15 ~",
  AP: "~@5 [d3,g3]@5 ~ [d3,g3]@5, g2@15 ~", AQ: "c3@5 [c3,e3,g3]@5 ~ [c3,e3,g3]@5",
  AR: "[b2,d3,g3]@5 [b2,d3,g3]@5 ~ [b2,d3,g3]@5", AS: "[b2,d#3,f#3]@5 [b2,d#3,f#3]@5 ~ [b2,d#3,f#3]@5",
  AT: "[e3,g#3]@5 ~@11", AU: "e3 f3 ~ f#3 g3 g#3 ~ a3 a#3 b3 ~ c4 c#4 d4 ~ d#4",
  AV: "e4 g#4 ~ b4 d5 e5 ~ g#5 b5 d6 ~ e6 g#5 e6 ~ g#5, ~@5 e3@5 ~ e3@5",
  AW: "e6 [a5,c6] ~ e6 [a5,c6] e6 ~ [a5,c6] e6 [a5,c6] ~ e6 [a5,c6] e6 ~ [a5,c6], a2@5 a2@5 ~ a2@5", // Am
  AX: "e6 [g#5,b5] ~ e6 [g#5,b5] e6 ~ [g#5,b5] e6 [g#5,b5] ~ e6 [g#5,b5] e6 ~ [g#5,b5], e2@5 e2@5 ~ e2@5", // G#m
  AY: "c6 [e5,a5] ~ c6 [e5,a5] c6 ~ [e5,a5] c6 [e5,a5] ~ c6 [e5,a5] c6 ~ [e5,a5], a2@5 a2@5 ~ a2@5", // A5
  AZ: "b5 [e5,g#5] ~ b5 [e5,g#5] b5 ~ [e5,g#5] b5 [e5,g#5] ~ b5 [e5,g#5] b5 ~ [e5,g#5], e2@5 e2@5 ~ e2@5", // E
  BA: "a5 [c5,f5] ~ a5 [c5,f5] a5 ~ [c5,f5] a5 [c5,f5] ~ a5 [c5,f5] a5 ~ [c5,f5], a2@5 a2@5 ~ a2@5", // F5
  BB: "g5 [b4,d5] ~ g5 [b4,d5] g5 ~ [b4,d5] g5 [b4,d5] ~ g5 [b4,d5] g5 ~ [b4,d5], g2@5 g2@5 ~ g2@5", // Bm
  BC: "g5 [c5,e5] ~ g5 [c5,e5] g5 ~ [c5,e5] g5 [c5,e5] ~ g5 [c5,e5] g5 ~ [c5,e5], c3@5 c3@5 ~ c3@5", // C
  BD: "a5 [d5,f5] ~ a5 [d5,f5] a5 ~ [d5,f5] a5 [d5,f5] ~ a5 [d5,f5] a5 ~ [d5,f5], f2@5 f2@5 ~ f2@5", // Dm
  BE: "a5 [c5,e5] ~ a5 [c5,e5] a5 ~ [c5,e5] a5 [c5,e5] ~ g#5 [b4,e5] g#5 ~ [b4,e5], e2@5 e2@5 ~ e2@5", // C E5
  BF: "a5 [c5,e5] ~ a5 [c5,e5] a5 ~ [c5,e5] a5 [c5,e5] ~ a5 [c5,e5] a5 ~ [c5,e5], a2@5 a2@5 ~ a2@5", // C
  BG: "[c3,c4,c5,c6]@10 ~ [c3,c4,c5,c6]@5", BH: "[c3,c4,c5,c6]@10 ~ [g2,g3,g4,g5]@5",
  BI: "[c3,c4,c5,c6]@10 ~ [a2,a3,a4,a5]@5", BJ: "[c3,c4,c5,c6]@15 ~", BK: "[d3,d4,d5,d6]@10 ~ [e3,e4,e5,e6]@5",
  BL: "[f3,f4,f5,f6]@10 ~ [e3,e4,e5,e6]@5", BM: "g4@3 ~@2 g5@3 f#5@3 a5@2 g5@3", BN: "a4@3 ~@2 a5@3 g#5@3 b5@2 a5@3",
  BO: "f5@3 e5@2 d5@3 c5@3 b4@2 d5@3", BP: "[e4,c5]@3 ~@2 e5@3 d#5@3 f5@2 e5@3", BQ: "d4@3 ~@2 d5@3 c#5@3 e5@2 d5@3",
  BR: "c4@3 ~@2 c5@3 b4@3 d5@2 c5@3", BS: "b3@3 ~@2 b4@3 a#4@3 c5@2 b4@3", BT: "[a3,a4]@3 ~@2 a4@3 ~@3 a4@3 ~@2",
  BU: "[c#4,c#5]@3 ~@2 c#5@3 ~@3 c#5@3 ~@2", BV: "[d4,d5]@3 ~@2 d5@3 ~@3 d5@3 ~@2",
  BW: "[d#4,d#5]@3 ~@2 d#5@3 ~@3 d#5@3 ~@2", BX: "[e4,e5] ~@3", BY: "e2@5 [e2,e3]@5 ~ [e2,e3,e4]@5",
  BZ: "[e2,e3,e4]@5 [e2,e3,e4,e5]@5 ~ [e2,e3,e5,e6]@5", CA: "[a3,c4,e4]@5 [a4,c5,e5]@5 ~ [d3,a5,c6,e6]@5, e3@5 ~@3",
  CB: "[a5,c6,e6]@5 [a4,c5,e5]@5 ~ [a2,a3,c4,e4]@5, c3@5 ~@3", // Am
  CC: "[g#3,b3,e4]@5 ~@3 c3@3 [b2,g#5,b5,e6]@5, b2 ~, ~@5 [g#4,b4,e5]@5 ~@6", // E
  CD: "[a5,c6,e6]@5 [a4,c5,e5]@5 ~ [a3,c4,e4]@5, a2@15 ~", CE: "[f3,a3,c4]@5 [f4,a4,c5]@5 ~ [c3,f5,a5,c6]@5, c3@5 ~@3",
  CF: "[d5,g5,b5]@5 [d4,g4,b4]@5 ~ [d3,g3,b3]@5, d3@5 ~@3", CG: "[g3,c4]@5 [e4,g4,c5]@5 ~ [e3,e5,g5,c6]@5, e3@5 ~@3",
  CH: "[g3,e5,g5,c6]@5 [f3,e4,g4,c5]@5 ~ [e3,g3,c4]@5", CI: "[d3,f3,a3,d4]@5 [e3,f4,a4,d5]@5 ~ [d3,f5,a5,d6]@5",
  CJ: "[a5,c6,e6]@5 [a4,c5,e5]@5 ~ [b2,g#3,b3,e4]@5, c3@5 ~@3", CK: "[a3,c4,e4]@5 [a4,c5,e5]@5 ~ [a5,c6,e6]@5, a2@15 ~",
  CL: "[g5,b5,d6]@5 [g4,b4,d5]@5 ~ [d3,g3,b3,d4]@5, b2@5 ~@3", // G
  CM: "c4@3 c5@2 b4@3 a#4@3 a4@2 g#4@3, c3@5 [e3,g3]@5 ~ [e3,g3]@5", // Em
  CN: "g4@3 f#4@2 f4@3 e4@3 d#4@2 d4@3, c3@5 [e3,g3]@5 ~ [e3,g3]@5", // Em
  CO: "c4@3 a4@2 g#4@3 g4@3 f#4@2 f4@3, c3@5 [f3,a3]@5 ~ [f3,a3]@5", // F
  CP: "e4@3 g4@2 c5@3 g4@3 e5@2 c5@3, c3@5 [e3,g3]@5 ~ [e3,g3]@5", // Em
  CQ: "g4@3 d5@2 c#5@3 c5@3 b4@2 a#4@3, b2@5 [d3,g3]@5 ~ [d3,g3]@5", // G5
  CR: "a4@3 a5@2 g#5@3 g5@3 f#5@2 f5@3, a2@5 [c3,e3]@5 ~ [c3,e3]@5", // C
  CS: "g5@3 d5@2 b4@3 g4@3 d4@2 g4@3, b2@5 [d3,g3]@5 ~ [d3,g3]@5", // G5
  CT: "[g3,g5]@3 [e3,e5]@2 [g3,g5]@3 [e3,e5]@3 [g3,g5]@2 [e3,e5]@3", // G E G E G E
  CU: "[a3,a5]@3 [f3,f5]@2 [a3,a5]@3 [f3,f5]@3 [a3,a5]@2 [f3,f5]@3", // A F A F A F
  CV: "[b3,b5]@3 [g3,g5]@2 [b3,b5]@3 [g3,g5]@3 [b3,b5]@2 [g3,g5]@3", // B G B G B G
  CW: "[c4,c6]@3 [b3,b5]@2 [c4,c6]@3 [d4,d6]@3 [e4,e6]@2 [f4,f6]@3", // C B C D E F
  CX: "g6 g5 ~ g6 g5 g6 ~ g5 g6 g5 ~ g6 g5 g6 ~ g5, [g3,g4]@5 g3@5 ~ g3@5", // G
  CY: "g6 g5 ~ g6 g5 g6 ~ g5 g6 g5 ~ g6 g5 g6 ~ g5, g3@5 g3@5 ~ g3@5", CZ: "[g3,c6,c7] ~@3", DA: "[g3,c5,c6]@5 ~@11",
  DB: "[g3,c4,c5]@5 ~@11", DC: "[c3,g3,c4]@5 ~@11", DD: "[[e3,e4]@41 ~@2 [e5,e6]@2 [e5,e6]@3, c3@23 ~]/3",
  DE: "[c3,e5,e6] ~@3", // C
})).s("gm_piano").gain(0.4)

stack(piano, piano_2)