Strudelify
KeyG majorTempo63 bpm
0:00/0:00
// Slavonic Dances Op.72 — DvoÅák Antonín Leopold Op.72 No.2: Starodávny
// 63 bpm, 3/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/6353836; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(63/1.5)

// 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 ~@2 F G H I J K ~@2 A B C ~ D E ~@2 F G H I J K ~@2 L M N O P Q R S T U ~@6 L M N O P Q R S T U ~@6 V W
  ~@2 V ~@3 X Y ~@6 Z AA AB ~ Z AC AD AE AF AG ~@2 AF AH AI AJ AK AL AM AN AO AP AK AL AM AQ AO AP ~@4 AR AS AT AU A B C
  ~ AV AW ~@3 AX AY AZ ~@4 L BA N O P Q BB S BC BD ~@6 V BE BF BG ~@4 BH BI ~@2
>`.pickRestart({
  A: "~@3 [e5,g5,b5]@2 [e5,g5,c6]@3 [e5,g5,b5]@3 [e5,g5,a#5]@2 [e5,g5,b5]@3", B: "[d#5,a5,c6]@11 [d#5,a5,b5]@5",
  C: "[b4,e5,a5]@8 [e5,g5]@3 [e5,f#5]@2 e5@3, ~@11 b4@5", // Esus4 Em Esus2
  D: "~@3 [e5,f#5]@2 [e5,g5]@3 [e5,f#5]@3 [e5,f5]@2 [f5,f#5]@3, ~@11 c#5@5", E: "[b4,a5]@11 ~@5, e5",
  F: "~@3 [b4,e5]@2 [c5,e5]@3 [b4,e5]@3 [a#4,e5]@2 [b4,e5]@3", G: "d5@11 c#5@5, e5", H: "[g4,c5]@8 g4@3 f#4@2 e4@3, e5",
  I: "g4@10 ~ f#4@5, [d#4,b4]@15 ~", J: "~@3 [e4,g4]@2 [e4,a4]@3 [e4,g4]@3 [d#4,f#4]@2 [e4,g4]@3",
  K: "[c4,e4,b4]@11 [e4,a4]@5", L: "~@3 [e5,b5,e6]@2 [f5,b5,f6]@3 [e5,b5,e6]@3 [d#5,b5,d#6]@2 [e5,b5,e6]@3",
  M: "[a4,c5,f5,c6,f6]@10 ~ [a4,c5,f5]@5", N: "~@3 [f5,b5,f6]@2 [f#5,b5,f#6]@3 [f5,b5,f6]@3 [e5,b5,e6]@2 [f5,b5,f6]@3",
  O: "[a#4,c#5,f#5,a#5,c#6,f#6]@10 ~ [f#4,f#5]@5", // F#
  P: "~@3 [f#5,c#6,e6,f#6]@2 [g5,c#6,e6,g6]@3 [f#5,c#6,e6,f#6]@3 [f5,c#6,e6,f6]@2 [f#5,c#6,e6,f#6]@3", // F#7 C#dim F#7 C# F#7
  Q: "[e5,g5,c6,e6,g6,c7]@10 ~ [e5,g5,b5,e6,g6,b6]@5", R: "~@3 [a4,d#5,a5,d#6]@8 [d#5,g5,d#6,g6]@2 [d#5,f#6]@3",
  S: "[g4,e5]@15 ~", T: "e4@3 [e5,g5] ~ [g5,e6] ~@5 e5 ~ [g5,e6] ~@2",
  U: "e4@3 a4 ~ e5 ~@2 a5 ~@2 [e5,a5,e6]@3 ~@2, ~@11 c#5 ~@4", // A5
  V: "[g#5,b5] [a5,c6] ~ [g#5,b5]@2 [e5,g#5] ~@2 [g#5,b5] ~@2 [e5,g#5] ~@4", // G#m Am G#m E G#m E
  W: "[a5,c#6] [b5,d6] ~ [a5,c#6]@2 [f#5,a5]@3 [a5,c#6]@3 [f#5,a5]@3 ~@2", // A Bm A F#m A F#m
  X: "e5 g#5 ~ b5 e6 g#6 ~ b6 g#6 b6 ~ [e6,g#6]@3 ~@2", Y: "f#6 a6 ~ c#7 f#6 a6 ~ c#7 a6 c#7 ~ [f#6,a6]@3 ~@2",
  Z: "~@5 [d4,a4]@5 ~ [f4,b4]@5", AA: "[e4,c5]@4 d5 [e4,c5,e5]@10 ~", AB: "[a4,c5,f5]@5 [g4,b4,e5]@5 ~ [f4,g4,d5]@5",
  AC: "[e4,c5]@4 d5 [f#4,c5,e5]@10 ~", AD: "[g4,c5,e5]@5 [a4,c5,a5]@5 ~ [g4,c5,g5]@5",
  AE: "[a4,b4,f5]@2 [g4,e5]@2 [f4,g4] [e4,g4,c5]@10 ~, ~@2 [b4,d5] ~@5", AF: "~@5 [d4,a4,d5,a5]@5 ~ [f4,b4,f5,b5]@5",
  AG: "[e4,c5,e5,c6]@4 [d5,d6] [c5,e5,c6,e6]@10 ~", AH: "[e4,c5,e5,c6]@4 [d5,d6] [f#4,c5,e5,f#5,c6,e6]@11",
  AI: "[g4,c5,e5,c6,e6]@5 [c5,f5,a5,c6,a6]@5 ~ [c5,e5,g5,c6,g6]@5", // C F C
  AJ: "[b4,f5,b5,f6]@2 [e5,e6]@2 [b4,d5,b5,d6] [e4,g4,c5]@10 ~", AK: "~@5 [a4,c5]@5 ~ [g4,b4,d5]@5",
  AL: "[g4,c5,e5]@4 [b4,d#5] [g4,c5,e5]@11", AM: "[e4,c5,e5]@5 [f#4,c5,f#5]@5 ~ [g4,d5,g5]@5",
  AN: "[g4,c5,g5]@5 [c5,d#5,a5]@5 ~ [b4,d5,g5,b5]@5, c6@11 ~@5", // C5 Adim G
  AO: "[a4,c5,e5,a5]@5 [g4,b4,d5,g5]@5 ~ [f#4,a4,c5,f#5]@5", AP: "[d5,a5]@2 g5@2 f#5 ~@11, [g4,b4]@5 ~@11",
  AQ: "[g4,c5,g5,c6]@5 [c5,d#5,a5]@5 ~ [b4,d5,g5,b5]@5", AR: "~@8 d6 ~@2 f6 ~ f6 ~@2",
  AS: "e6 ~@2 e6 ~ c7 ~@2 c7 ~@2 a6 ~ a6 ~@2", AT: "~@3 c6@2 [g6,g7]@3 [c6,c7]@3 [e6,e7]@2 g5@3, c7@5 ~@11",
  AU: "[g5,g6]@5 [g5,g6] ~ [e5,e6] [f5,f6] [g5,g6] ~ c5@5", // G E F G
  AV: "~@5 [e5,g5]@3 [e5,f#5]@3 [e5,f5]@2 [e5,f#5]@3, ~@11 c#5@5", AW: "[b4,e5,a5]@11 [b4,e5,g5]@5",
  AX: "~@3 e6@2 e6 ~ g6 g5@3 g5 e6 e5@3", AY: "~@3 e5@2 [e5,g5,e6] ~@10", AZ: "~@3 g6 ~ g6 ~ b6 b5@3 b5 d#6 d#5 ~@2",
  BA: "[a4,c5,f5,c6,f6]@10 ~ [f4,f5]@5", BB: "~@3 [a4,d#5,a5,d#6]@8 [b4,g5,b5,g6]@2 [a4,f#5,a5,f#6]@3",
  BC: "~@3 e5 ~ [e5,g5,e6] ~@10", BD: "~@3 d6 ~ d6 ~ g6 c6@3 c6 d#6 g5@3",
  BE: "[a5,c#6] [b5,d6] ~ [a5,c#6]@2 [f#5,a5] ~@2 [a5,c#6] ~@2 [e5,g5] ~@4", // A Bm A F#m A Em
  BF: "[a4,b4,d#5]@5 [a4,b4,e5]@5 ~ [a4,b4,f#5]@5", BG: "[g#4,b4,g#5]@4 e5 [g#4,b4]@10 ~", BH: "~@11 f4@2 e4@3",
  BI: "[e4,e5,e6]@15 ~", // E
})).s("gm_piano").gain(0.11)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@3 A B C D E ~@6 F G ~@3 A B C D E ~@6 F G ~@10 H I J K L M ~@10 H I J K L M ~@2 N O ~ P Q R ~@2 S T U V W X Y ~@2 Z
  Y ~@3 AA ~ AB AC AA ~@3 AD ~@4 AE AD ~@4 AE AF AG AH AI AJ ~@6 A AK ~ D AL AM ~@3 AN AO AP AQ ~@10 AR AS AT AU AV AW
  ~@4 AX AY AZ BA@2 ~ BB@2
>`.pickRestart({
  A: "[c5,e5,f#5]@15 ~", B: "c#5@5 ~@3", C: "~@11 [b4,g5]@5", D: "[a4,d#5,g5]@8 f#5@3 e5@2 d#5@3, ~@11 [f#4,a4]@5",
  E: "[e4,g4]@5 ~@3, e5@13 ~@3", F: "[b3,d#4,g4]@10 ~ [a3,d#4,f#4]@5", G: "[g3,e4]@15 ~",
  H: "e5@3 [g5,e6] ~ [e6,g6] ~@5 [c5,e5,g5] ~ [e6,g6] ~@2", // C Em C Em
  I: "b4@3 d#5 ~ g5 ~@2 b5 ~@2 [a5,d#6]@3 ~@2, ~@11 [b4,d#5] ~@4", J: "e5@3 c6 ~ [c6,e6] ~@5 e5 ~ [c6,e6] ~@2",
  K: "e4@3 e5 ~ a5 ~@2 c6 ~@2 [e5,a5,e6]@3 ~@2, ~@11 [a4,c5] ~@4", // A5 Am
  L: "b3 ~@2 b4 ~ [d#5,g5,b5] ~@5 [b3,a4] ~ [d#5,f#5,b5] ~@2", // D#aug B7 B
  M: "~@3 e5 ~ [e5,g5] ~@2 [g5,b5] ~@2 [e5,g5,e6]@3 ~@2, [b3,e4,g4]@10 ~ [e4,b4] ~@4", // Em G Em E5
  N: "[a4,b4,d#5]@5 [a4,b4,e5]@5 ~ [a4,b4,f#5]@5", O: "[g#4,b4,g#5]@4 e5 [g#4,b4]@10 ~",
  P: "[a5,c6] [b5,d6] ~ [a5,c6]@2 [f5,a5] ~@2 [a5,c6] ~@2 [f5,a5] ~@4", Q: "[a4,b4]@5 [a4,b4,g5]@5 ~ [a4,b4,f#5]@5",
  R: "a4@3 g#4@2 g4@3 f#4@3 e4@3 ~@2, [b4,e5]@15 ~", S: "b5 ~@2 b5 b6 b5 ~@2 b5 b6 ~ b5 ~ b5 ~ b6",
  T: "b5 e6 ~ g#6 b5 e6 ~ g#6 e6 g#6 ~ e6@3 ~@2", U: "e6 g#6 ~ b6 e6 g#6 ~ b6 g#6 b6 ~ [e6,g#6]@3 ~@2",
  V: "f6 a6 ~ c7 f6 a6 ~ c7 a6 c7 ~ [f5,a5]@3 ~@2", W: "b4 ~@2 b4 b5 b4 ~@2 b4 b5 ~ b4 ~ b4 ~ b5",
  X: "b4 ~@2 b4 b5 e5 ~@2 e5 e6 ~ [e4,g4,b4] ~@4, ~@11 e6@3 ~@2", Y: "[e4,g4]@5 ~@11",
  Z: "[e4,g4,c5]@4 [f4,a4] [e4,c5]@10 ~", AA: "[e4,g4,e5,g5]@5 ~@11",
  AB: "[a4,c5,f5,a5,c6,f6]@5 [g4,b4,e5,g5,b5,e6]@5 ~ [f4,g4,d5,f5,g5,d6]@5", // F Em G7
  AC: "[e4,g4,c5,e5,g5,c6]@4 [f4,a4,f5,a5] [e4,g4,c5,e5,g5,c6]@10 ~", AD: "[g4,b4]@5 ~@11",
  AE: "~@5 [g4,b4,d5,g5]@10 ~", AF: "e6@3 e6@2 d6@3 d6@3 f6@2 f6@3", AG: "e6 ~@2 e6 ~ c7 ~@2 c7 ~@2 a6 ~ a6 ~@2",
  AH: "a6 ~@2 a6 ~ g6 ~@2 g6 ~@2 g6 ~ g6 ~@2", AI: "[d5,e6] ~@2 [c5,c6] ~ e6 ~@2 e6 ~@2 g6 ~ g6 ~@2",
  AJ: "e6 ~@2 e6 ~ d6 ~@10", AK: "~@3 [e5,f#5]@3 ~@10, c#5@5 ~@3", AL: "[e4,g4,e5]@11 e5@3 ~@2",
  AM: "~@5 [g5,e6]@5 ~@6", AN: "~@3 e5 ~ [e5,g5,e6] ~@10", AO: "~@3 e6@2 e6 ~ a6 a5@3 a5 e6 e5@3",
  AP: "~@3 b4 ~ [b4,d#5,b5] ~@10", AQ: "~@3 b5 ~ b5 ~ e6 g5@3 g5 b5 e5@3", AR: "~@3 d5 ~ [d5,f#5,d6] ~@10",
  AS: "~@3 b5 ~ b5 ~ e6 e5@3 e5 b5 b4 ~@2", AT: "~@3 e5 ~ [a#4,e5,a#5,e6] ~@10",
  AU: "~@3 b5 ~ b5 ~ e6 e5@3 e5 a5 c5 ~@2", AV: "~@3 b4 ~ [b4,d#5,b5] ~@5 b4@5", AW: "~@3 e6 ~ e6 ~ g6 g5@3 g5 e6 e5@3",
  AX: "e5 g#5 ~ b5 e5 g#5 ~ b5 g#5 b5 ~ [e5,g#5]@3 ~@2", AY: "f5 a5 ~ c6 f6 a6 ~ c7 a6 c7 ~ [f6,a6]@3 ~@2",
  AZ: "b4 ~@2 b5 b6 b4 ~@2 b5 b6 ~ b4 ~ b5 ~ b6",
  BA: "[b4 ~@2 b5 b6 e4 ~@5 b4@2 a#4@3 a4@3 g#4@2 g4@3 f#4@3 ~@5, ~@8 e5@23 ~, ~@9 e6@22 ~]/2", BB: "[e4,e5,e6]@15 ~",
})).s("gm_piano").gain(0.07)

// chords · piano
const piano_2 = note(`<
  A B C D E ~ F ~@3 G H I J K ~ A B C D E ~ F ~@3 G H I J K ~ L M N O P Q R S T U V W X ~@3 L M N O P Q R S T U V W X
  ~@3 Y Z AA AB AC ~ AD AE AF AG AH AI ~@4 AJ AK AL AM AJ AN AO AP AJ AK AQ AR AJ AS AT AU AV AW AX AY AZ BA AV BB AX BC
  AZ BA ~ BD BE ~@2 BF BG BH A B C D E BI BJ ~ BK BL BM BN BO BP ~@2 L BQ N BR P Q BS BT BU BV BW BX BY ~@3 Y Z AA AB AF
  ~@3 BZ CA ~@2
>`.pickRestart({
  A: "~@5 [g3,e4]@6 ~@2 [g3,e4]@3, e2, ~@3 e3@8 e3@5", // C
  B: "~@11 [f#3,a3,d#4,a4]@5, f#2, ~@3 [f#3,a3]@8 ~@5, ~@5 d#4@5 ~@6, ~ f#4", // D#dim F#m
  C: "~@5 e4@6 ~@2 [b3,e4]@3, g2, ~@3 b3@8 g3@5, ~@5 g4@11", // E5
  D: "~@8 e4@3 [a3,c4,e4,f#4]@5, a2, ~@3 e3@13, ~@3 a3@8 ~@5, ~@5 c4@5 ~@6", // F#m7b5
  E: "~@3 c#4@2 [c#4,e4]@6 ~@2 [c#4,e4]@3, a#2, ~@3 a#3@8 a#3@5", // C#m
  F: "~@5 d#4@11, [b1,b2]@11 ~@5, ~@3 a3@13, ~@5 b3@8 ~@3", // B
  G: "~@5 [g3,c4,e4]@6 ~@2 [a#2,g3,c4,e4]@3, ~@3 e3@13, ~@11 a#1@5", // C C7
  H: "~@3 a3@2 [a3,b3]@6 ~@2 [b2,a3,b3]@3, [b1,b2]@11 b1@5", // Asus2 B7 B
  I: "~@5 [g3,c4]@6 ~@2 [g3,c4]@3, [c2,c3]@11 [c2,c3,a3]@5, ~@3 e3@13", // C5 C F
  J: "~@8 a3@3 [f#3,a3,c4]@5, [f#1,f#2], ~@3 c3@13, ~@5 e3@11", K: "~@5 a3@11, b1@11 ~@5, ~@3 b2@10 ~@3",
  L: "~@3 e3@2 [e3,g#3,b3,d4]@6 ~@2 [e3,g#3,b3,d4]@3, g#1, g#2@11 g#2@5", // E7
  M: "a2@3 f3@2 [f3,a3]@3 ~@5 [f3,a3,c4]@3, a1, ~@3 c3@13, ~@3 a2@8 a2@5, ~@8 [f3,a3,c4]@5 ~@3", // F
  N: "~@3 f3@2 [f3,g#3,b3,c#4]@6 ~@2 [f3,g#3,b3,c#4]@3, [c#2,c#3]@11 [c#2,c#3]@5", // C#7 C#
  O: "~@3 f#3@2 [f#3,a#3]@3 ~@5 [f#3,a#3,c#4]@3, [f#1,f#2], ~@3 c#3@13, ~@3 a#2@8 a#2@5, ~@8 [f#3,a#3,c#4]@5 ~@3", // F#
  P: "~@5 [a#3,c#4,e4]@6 ~@2 [a#3,c#4,e4]@3, a#1, a#2@11 a#2@5, ~@3 f#3@13", // A#dim
  Q: "~@3 g3@2 e4@3 ~@5 [g3,e4]@3, b1, ~@3 e3@13, ~@3 b2@5 g4@8, ~@5 g3@3 e4@3 b2@5", // C
  R: "~@3 d#4@2 d#4@6 ~@2 [a3,d#4]@3, b1, b2@11 b2@5, ~@3 a3@10 ~@3, ~@5 g4@11", // Adim
  S: "~@3 e3@2 g3@3 ~@5 [g3,c4,e4]@3, c2, ~@3 c3@8 c3@5, ~@5 e3@11, ~@8 [g3,e4]@5 ~@3", // C
  T: "~@3 [e3,g3]@2 [e3,g3]@3 [e3,g3]@3 [e3,g3]@2 [e3,g3,b3]@3, g1, g2@11 [g2,a#3]@5, ~@3 b3@5 b3@5 ~@3, ~@5 c4@11", // Em Gm
  U: "[a1,a2]@11 ~@2 a1@3, [e3,a3,d4], ~@11 [a2,c#4]@5", V: "b3@8 ~@5 g3@3, [a#1,e4], [a#2,g3]@11 [a#2,a3]@5, ~ b3",
  W: "[b1,b2]@11 ~@2 b1@3, [f#3,b3,d4], ~@11 [b2,a3]@5", // B Bm B7
  X: "~@3 e3@2 e3@3 e3@3 [c3,f#3]@5, c2, c3@11 e3@2 ~@3, ~@3 g3@5 g3@5 ~@3, ~@5 a3@11", // Cdim
  Y: "~@5 g#4@2 ~@4 [e4,g#4]@5, e3, ~ g#3@15, ~@3 b3@13, ~@4 e4@3 b4 g#4 b4@7", // E
  Z: "~@5 a4@2 ~@4 [f#4,a4]@5, a3, ~ c#4@15, ~@3 e4@13, ~@4 f#4@3 c#5 a4 c#5@7", // F#m
  AA: "~@2 a3@2 ~@3 a3@2 b3@2 ~ a3@2 b3@2, b2@2 b3 ~@5, ~@5 c#3@5 ~ d#3@5",
  AB: "~@2 g#3@2 ~@3 g#3@2 b3@2 ~ g#3@2 b3@2, e3@2 b3 ~@5, ~@5 b2@5 ~ e2@5",
  AC: "~@5 g#4@2 ~@2 b4 ~ [g#4,b4]@5, e3@7 b4 g#4@3 ~@5, ~ g#3@15, ~@3 b3@13, ~ e4@3", // G#m
  AD: "~@13 [a3,b3]@3, b2@5 c#3@5 ~ d#3@5, ~@3 [a3,b3]@5 [a3,b3]@5 ~@3", // Asus2
  AE: "e3@3 ~@10 [e3,b3]@3, ~@3 [e3,b3]@5 [e3,b3]@5 ~@3, ~@5 b2@5 ~ e2@5", // E5
  AF: "~@3 g#4@2 g#4@3 g#4@3 [e3,e4,g#4]@5, e3@11 ~@5, [g#4,b4]@3 b4@5 b4@8, ~ [a4,c5]@15, ~@5 e4@5 ~@6", // E G#m Am
  AG: "~@3 a4@2 a4@3 a4@3 [a2,f#4,a4]@5, a2@11 ~@5, [a4,c#5]@3 c#5@5 c#5@8, ~ [b4,d5]@15, ~@5 f#4@5 ~@6", // D A Bm
  AH: "[b1,b2,a3,b3,d#4]@5 [c#2,c#3,a3,b3,e4]@5 ~ [d#2,d#3,a3,b3,f#4]@5", // B7 A B7
  AI: "[e2,e3,g#3,b3,g#4]@4 e4 [e2,e3,g#3,b3]@10 ~", AJ: "[e3,g3,b3]@5 [f3,a3]@5 ~ [d3,f3,b3]@5",
  AK: "[c3,e3,g3,c4]@5 [a2,e3,a3,c4]@10 ~", AL: "[f1,f2]@5 [g1,g2]@5 ~ [b1,b2]@5", AM: "[c2,c3]@4 [f3,a3] [c3,g3]@10 ~",
  AN: "[c3,e3,g3,c4]@5 [a2,d3,f#3,c4,e4]@11", AO: "[g2,g3,c4,e4]@5 [g3,c4,f4]@5 ~ [g2,g3,c4,e4]@5",
  AP: "[g3,b3,d4]@3 ~ g3 [c2,c3,e3,g3,c4]@10 ~, g2 ~@3", AQ: "~@13 b2@3, f1@5 g1@5 ~ b1@5, ~@3 f2@5 a2@5 ~@3",
  AR: "[c2,c3]@4 [f3,a3,c4] [c3,g3,c4]@10 ~", AS: "[c3,e3,g3,c4]@5 [a1,a2,d3,f#3,c4]@11",
  AT: "[g1,g2,g3,c4,e4]@5 [g3,c4,f4]@5 ~ [g2,g3,c4,e4]@5", // C Csus4 C
  AU: "[g3,b3,a4]@2 g4@2 [g2,g3,f4] c3@5 ~ c2@5, ~@5 [g3,c4,e4]@10 ~", // G G7 C
  AV: "[g2,g3,b3,d4]@5 [g3,a3,c4]@5 ~ [g2,g3,b3,d4]@5", // G Am7 G
  AW: "[c3,g3,c4,e4]@5 [c3,c4,e4]@3 [d3,d4,f#4]@3 [c3,c4,e4]@2 [a2,b3,d4]@3", // C D C Bm7
  AX: "[a1,a2,a3,c4]@10 ~ [b1,b2,g3,b3,d4]@5", AY: "[e1,e2,g3,c4,e4]@5 [f#1,f#2,c4,d#4,a4]@5 ~ [g1,g2,d3,b3,d4]@5",
  AZ: "[a1,a2,a3,c4]@5 [b1,b2,g3,b3,d4]@5 ~ [d2,d3,f#3,a3]@5", BA: "[g1,g2]@5 [g1,g2]@10 ~, [g3,b3,d4]@15 ~",
  BB: "[c3,g3,c4,e4]@5 [c3,c4,e4]@3 [d3,d4,f#4]@3 [c3,c4,e4]@2 [b2,b3,d4]@3", // C D C Bm
  BC: "[e1,e2,g3,c4,e4]@5 [f#1,f#2,c4,d#4,a4]@5 ~ [g1,g2,b3,d4]@5", // C F#dim G
  BD: "~@4 d5 ~@2 c4@9, ~@5 [a2,e4,c5,e5]@11, ~@3 e3@5", BE: "[f2,a4,c5,f5]@5 [g2,g4,b4,e5]@5 ~@6",
  BF: "~@11 [d2,d3]@5, ~@5 [a2,e4,f#4,c5,e5]@11, ~@3 f#3@5, ~@6 d3@5 ~@5, ~@7 c4@9", // D F#m7b5
  BG: "[g3,c5]@5 [g3,c4,c5]@5 ~ [g3,c4,e4,g4,c5,g5]@5, [g2,e5], [e4,g4]@11 ~@5, ~@5 [f4,a4,a5]@11", // C5 C Em F
  BH: "~@2 [g4,e5]@2 [g3,b3,f4,g4,d5] [c3,g3,c4,e4,g4,c5]@10 ~, [g3,d4,a4,b4,f5] ~@3", // C G7 C G7
  BI: "~@8 b3@3 [b3,e4]@5, b2, ~@3 e3@13, ~@5 g3@11", BJ: "~@5 d#4@11, b1, b2@11 ~@5, ~@3 a3@13, ~@5 b3@8 ~@3",
  BK: "~@3 [e4,e5]@2 [e4,e5]@3 [e4,e5]@3 [e4,e5]@2 [e4,b4,e5]@3, [g1,g2]@11 [g1,g2,a#4]@5, ~@3 e3@13, ~@3 b4@5 b4@5 ~@3, ~@5 [g3,c5]@11", // E E5 G Gm C5
  BL: "~@11 [a1,a2,e4,c#5,e5]@5, d5, [a1,a2,e4,e5]@11 ~@5, ~@3 e3@13, ~@5 g3@11", // A A5
  BM: "~@13 e4@3, [c5,e5]@11 [a#1,a#2,f#4]@5, [a#1,a#2,e4] g4, ~@3 e3@13, ~@5 g3@11", // C D#m A#dim
  BN: "~@11 [b2,a3,d#4,f#4]@5, [b1,g4,b4], [b2,d#4]@11 ~@5, ~@3 g3@13, ~@5 b3@11", // B7 Em B
  BO: "~@3 e4@2 e4@3 ~@5 [e4,g4]@3, [c2,c3]@11 [c2,c3,d#4,f#4]@5, ~@3 e3@13, ~@3 g4@5 [e4,g4]@5 ~@3, ~@5 [g3,a4]@11", // Em C Cdim Em Gsus2
  BP: "~@3 e3@13, b4, [f#1,f#2,c4,e4]@11 ~@5", // F#m7b5
  BQ: "~@3 [c3,f3]@2 [f3,a3]@3 ~@5 [f3,a3,c4]@3, a1, ~@3 a2@8 a2@5, ~@5 c3@11, ~@8 [f3,a3,c4]@5 ~@3", // F5 F
  BR: "~@3 f#3@2 a#3@3 ~@5 [g3,a#3,c#4]@3, [f#1,f#2], ~@3 c#3@13, ~@3 a#2@5 [g3,a#3,c#4]@3 a#2@5, ~@5 f#3@11", // Gdim F# Gdim
  BS: "~@3 d#4@2 [b3,d#4]@6 ~@2 [b3,d#4]@3, b1, b2@11 b2@5, ~@3 a3@13", // B
  BT: "~@5 g3@3 ~@5 [g3,e4]@3, c2, ~@3 e3@13, ~@3 c3@8 c3@5, ~@8 [g3,e4]@5 ~@3", // C
  BU: "~@3 e4@2 e4@3 e4@3 e4@2 [e4,b4]@3, g1, g2@8 b4@3 [g2,a#4]@5, ~@3 e3@13, ~@3 b4@2 [g3,c5]@11", // E5 Gm C5
  BV: "~@11 [a2,d#4,g4,c5]@5, [a2,d#4]@5 c4@11, ~ d5@15, ~ g4@10 ~@5, ~@3 g3@13", // Am7b5 Adim
  BW: "~@13 f#4@3, [d2,b4], [c4,f#4]@11 [d3,c4,g4]@5, ~@3 d3@5 a4@8, ~@5 f#3@11", // G Cdim Csus2
  BX: "~@11 [e2,g4]@5, [b3,e4,a4], e2@11 ~@5, ~@3 b2@13, ~@5 e3@11", // Em Esus4
  BY: "~@8 g4@5 ~@3, c2@11 ~@5, ~@3 c3@13, ~@3 [a#3,e4]@8 ~@5, ~@3 g4@2 [e3,a4]@11", BZ: "~@8 a#2@3 a2@2 g#2@3",
  CA: "[e2,g#2,b3]@15 ~", // E
})).s("gm_piano").gain(0.14)

// chords · piano · soft notes
const piano_soft_2 = note(`<
  ~@5 A B C D E F ~@3 G H ~@5 A B C D E F ~@3 G H ~@12 I J K L ~@12 I J K L ~@5 M ~@6 N O P Q ~@28 R S T U V W ~@8 X C
  ~@5 Y Z AA ~@12 AB AC AD AE ~@5 O AF AG@3 AH@2
>`.pickRestart({
  A: "~@8 b3@3 [b3,e4]@5, b2, ~@3 e3@13, ~@5 g3@11", B: "~@13 b3@3, ~@11 [b1,b2]@5",
  C: "~@11 [c3,g3,e4]@5, c2, ~@3 e3@13, ~@3 c3@8 ~@5, ~@5 g3@3 c4@8", // C
  D: "~@5 [g3,e4]@6 ~@2 [g2,g3,e4]@3, [g1,g2]@11 g1@5, ~@3 e3@13", // C G
  E: "~@5 [g3,e4]@6 ~@2 [a2,g3,e4]@3, [a1,a2]@11 a1@5, ~@3 e3@13", F: "[a#1,a#2]@13 ~@3", G: "~@13 b2@3, ~@11 b1@5",
  H: "~@3 b2 ~ c3 ~@2 b2 ~@2 a#2 ~ b2 ~@2, e2@10 ~ e2@5", I: "~@13 [e3,g3]@3",
  J: "[f#2,c3,e3]@11 [f#2,c3,e3,a3]@5, [f#1,b3]", K: "[b1,b2,d#3]@11 [b1,b2,d#3,f#3]@5, g3", L: "~@5 e2@11, [e1,e3]",
  M: "~@5 a4@2 ~@4 [f4,a4]@5, a3, ~ c4@15, ~@3 e4@13, ~@4 f4@3 c5 a4 c5@7", // F
  N: "~@3 g#4@2 g#4@3 g#4@3 [e3,e4,g#4]@5, e3@11 ~@5, [g#4,b4]@3 b4@5 b4@8, ~ [a4,c5]@15, ~@5 e4@5 ~@6", // E G#m Am
  O: "~@3 a4@2 a4@3 a4@3 [a2,f4,a4]@5, a2@11 ~@5, [a4,c5]@3 c5@5 c5@8, ~ [b4,d5]@15, ~@5 f4@5 ~@6", // Dm Am Bm
  P: "b2@5 [c#3,g4]@5 ~ [b2,d#3,a3,b3,f#4]@5, b3@11 ~@5", // C#dim B7
  Q: "a3@3 g#3@2 g3@3 f#3@3 e2@5, [e2,e3]@11 ~@5, [b3,e4]@8 ~@3 e3@3 ~@2", // E E5
  R: "[e3,b3,g4,b4]@5 [f3,a3,d4,a4]@5 ~ [d3,f3,f4,b4]@5", S: "[c3,g3,e4,c5]@5 ~@11", T: "~@11 [b2,f4,g4,d5]@5",
  U: "[c3,e4,g4,c5]@4 [f3,a3,f4,a4] [c3,g3,e4,c5]@10 ~", V: "[e3,b3,e4,g4]@5 [f3,a3,d4,a4]@5 ~ [d3,f3,f4,b4]@5",
  W: "[c3,g3,e4,c5]@4 d5 ~@11", X: "~@13 b3@3, ~@11 b2@5", Y: "~@11 [f#1,f#2,c4,e4,a4]@5, ~@5 a3@11",
  Z: "~@11 [b1,b2,a3,d#4,f#4]@5, [b3,g4], [b1,d#4]@11 ~@5, ~@3 b2@8 ~@5, ~@5 d#3@11", // B7 Em B
  AA: "~@3 b2@2 c3@3 b2@3 a#2@2 b2@3, [g3,e4]@15 ~, e2@5 ~@3", AB: "~@13 g4@3, ~@11 [c2,a#3,e4,f#4]@5",
  AC: "~@11 [f#1,f#2,c4,e4,a4]@5, [g1,g2,b3], ~ b4@15, ~ e4@4 g3@11, ~@3 e3@13", // F#m7b5 G
  AD: "~@5 a3@5 ~ [b1,a3,d#4,f#4]@5, [b2,b3,g4], [b1,d#4]@11 ~@5, ~@3 d#3@13", // B7 Em B
  AE: "~@3 b2@2 c3@3 b2@3 a#2@2 b2@3, [e2,g3,e4]@15 ~", AF: "[b2,b3]@5 [c#3,b3,g4]@5 ~ [b2,d#3,a3,b3,f#4]@5",
  AG: "[a3@3 g#3@2 g3@3 f#3@3 [c2,e3,e4]@10 [e2,b2]@3 ~@24, [e2,e3,b3,e4]@11 ~@10 e3@25 ~@2]/3", // C E5
  AH: "[[e2,g#2,e3]@15 ~ [e2,g#2,e3]@15 ~, b3@15 ~]/2", // E
})).s("gm_piano").gain(0.08)

stack(piano, piano_soft, piano_2, piano_soft_2)