Strudelify

Le Chemin de fer, Op. 27

Charles-Valentin Alkan

KeyD minorTempo200 bpm
0:00/0:00
// Le Chemin de fer, Op. 27 — Charles-Valentin Alkan
// 200 bpm, 2/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 513 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(200/2)

// 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 · piano · "A.PIANO 3"
const piano = note(`<
  A B@7 C@4 D E F C G@2 B@6 C@4 D H D E D H D E B@2 I J B@2 I@2 B@6 K B L@4 M L N O P Q L@2 M L R N S T U V R N W X@3 Y
  ~@3 Z AA AB AC Z AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AO AP AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI
  BJ BK BL BM BN BO BP BQ BH BR BS BT@2 BU BV BW BX BW BX BY BZ CA BV BU BV BW BX BY BZ CB CC CD CE CF CC CG CH CF CI CJ
  CK CL CM CN@2 B@4 C@4 D E F C G@2 B@6 C@4 D H D E D H D E B@2 I@2 B@2 I@2 B@20 CO@8 CP CQ CR CS CT CU CV CW CX CY CZ
  DA DB DC DD DE DF CQ CR CS DD DG DH DI DJ DK DL DM DN DO DP DQ DR DS DT DU DV DW DX DY DV DW DX DY DX DY DX DY@5 DZ@3
  EA ~@74 B EB@2 B C EB@2 C EC ED ~ D EE EF EB E EG EH EI EJ EK EL EM EN EK EL EM EN EO@2 EP@2 EQ ER@3 ES ET EU ET ES EV
  EU EW ES EX EY EZ@2 FA FB FC@2 EU FD FE FF FG FH FI FJ FK FL FM@2 FN FF FN FO FP FF FQ FR FS FT FS FT FU FV FW FT FU
  FT FS FT FU FV FX FY FZ GA FZ GA BV GA BV GB GC GD GE GF GC@2 GE GG GC GH GI ~@2 GJ@2 ~@12 GK GL GM@8 GN@2 GO@2 GP
  GQ@8 ~@2
>`.pickRestart({
  A: "~@2 a3 ~ a3 ~ a3 ~", B: "[a2,a3] ~ a3 ~ a3 ~ a3 ~", C: "[d3,a3] ~ a3 ~ a3 ~ a3 ~", D: "[e3,a3] ~ a3 ~ a3 ~ a3 ~",
  E: "[f3,a3] ~ a3 ~ a3 ~ a3 ~", F: "[db3,a3] ~ a3 ~ a3 ~ a3 ~", G: "[bb2,a3] ~ a3 ~ a3 ~ a3 ~",
  H: "[e3,ab3] ~ ab3 ~ ab3 ~ ab3 ~", I: "a3!4, a2", J: "a3@4 a3@4 a3@4 a3@3 ~, a2@15 ~", K: "[a2,a3] ~ a3 ~ a3 ~@3",
  L: "f3 ~ f3 ~ f3 ~ f3 ~", M: "[e3,f3] ~ f3 ~ f3 ~ f3 ~", N: "[bb2,f3] ~ f3 ~ f3 ~ f3 ~",
  O: "[c3,f3] ~ f3 ~ f3 ~ f3 ~", P: "f3 ~@3 f3 ~ f3 ~", Q: "f3 ~ f3 ~ f3 ~@3", R: "[a2,f3] ~ f3 ~ f3 ~ f3 ~",
  S: "[bb2,gb3] ~@7", T: "[c3,gb3] ~ gb3 ~ gb3 ~ gb3 ~", U: "[c3,ab3] ~ ab3 ~@3 ab3 ~", V: "[db3,ab3] ~ ab3 ~ ab3 ~@3",
  W: "[f2,db3] ~ db3 ~ db3 ~ db3 ~", X: "[gb2,db3] ~ db3 ~ db3 ~ db3 ~", Y: "f2 ~@7", Z: "~@2 f4 bb3 ~@3 d4",
  AA: "~@2 bb4 f4 ~@2 a4 f4", AB: "~@2 bb4 f4 ~@2 bb4 f4", AC: "~@2 f4 d4 ~@2 f4 c4", AD: "~@3 f4 ~@2 a4 f4",
  AE: "~@2 bb4 f4 ~@2 d5 bb4", AF: "~@2 c5 a4 ~@4", AG: "~@2 bb4 g4 ~@2 bb4 gb4", AH: "~@2 bb4 f4 ~@3 e4",
  AI: "~@6 f4 d4", AJ: "~@2 f4 c4 ~@3 b3", AK: "~@3 c4 ~@2 f4 d4", AL: "~@2 f4 bb3 ~@2 bb4 f4",
  AM: "~@2 f4 c4 ~@2 f4 d4", AN: "~@2 e4 bb3 ~@3 a3", AO: "~@2 d4 bb3 ~@2 f4 d4", AP: "~@2 bb4 f4 ~@2 c5 a4",
  AQ: "~@2 d5 bb4 ~@2 bb4 f4", AR: "~@2 f4 d4 ~@2 eb4 c4", AS: "~@2 d5 ~@3 d5 bb4", AT: "~@2 c5 a4 ~@2 b4 ab4",
  AU: "~@2 c5 g4 ~@2 b4 f4", AV: "~@2 c5 eb4 ~@2 d5 ~", AW: "~@2 g4 c4 ~@2 eb5 c5", AX: "~@2 d5 b4 ~@2 db5 bb4",
  AY: "~@2 d5 a4 ~@2 db5 g4", AZ: "~@2 d5 ~@3 e5 e4", BA: "~@2 a4 d4 ~@2 eb5 c5", BB: "~@2 eb5 bb4 ~@3 a4",
  BC: "~@2 eb5 bb4 ~@2 eb5 c5", BD: "~@2 eb5 d5 ~@4", BE: "~@2 d5 ~@3 gb5 d5", BF: "~@2 g5 g4 ~@2 d5 bb4",
  BG: "~@3 eb4 ~@2 b4 g4", BH: "~@2 c5 ~@5", BI: "~@2 d5 f4 ~@2 c5 f4", BJ: "~@2 bb4 f4 ~@2 a4 ~",
  BK: "~@2 d4 gb5 ~@2 d5 ~", BL: "~@3 g5 ~@2 bb4 d5", BM: "~@2 eb4 ~@3 g4 b4", BN: "~@2 c4 c5 ~@2 eb4 ~",
  BO: "~@2 d5 f4 ~@2 c5 ~", BP: "~@2 bb4 ~@5", BQ: "~@2 eb5 f4 ~@2 d5 f4", BR: "~@2 a5 f4 ~@2 g5 ~",
  BS: "~@2 f5 ~@3 e5 ~", BT: "[~@3 eb6@3 ~@5 f5@4 c5, ~@4 f6@27 ~, ~@12 eb6@19 ~, ~@14 c6@17 ~, ~@20 a5@11 ~]/2",
  BU: "~@14 [e2,f2] [g2,a2]", BV: "bb2 ~@3", BW: "~@14 e2 [f2,g2]", BX: "bb2 ~@3, a2 ~@15", BY: "~@14 [f2,g2] [a2,bb2]",
  BZ: "c3 ~@3", CA: "~@13 e2 f2 [g2,a2]", CB: "bb2@13 ~ [c3,d3] eb3", CC: "gb3 ~@3, f3 ~@15",
  CD: "bb2@14 [c3,d3] [eb3,f3]", CE: "gb3 ~@3", CF: "bb2@14 c3 [d3,eb3]", CG: "bb2@13 c3 d3 [eb3,f3]", CH: "gb3@5 ~@11",
  CI: "f3@5 ~@9 [bb2,c3] d3", CJ: "f3@4 ~@10 [bb2,c3] d3, eb3 ~@15", CK: "f3 ~@3, eb3 ~@15", CL: "~ [bb2,d3]",
  CM: "[bb2,d3]!2", CN: "[bb2,d3]@5 [bb2,d3]@5 ~ [bb2,d3]@5",
  CO: "[~@63 a2, d3@6 d3 a2@7 d3 a2@7 d3 a2@7 d3 a2@7 d3 a2@7 d3 a2@7 d3 a2@7 d3@2, ~ gb3@4 gb3@3 d3@5 gb3@3 d3@5 gb3@3 d3@5 gb3@3 d3@5 gb3@3 d3@5 gb3@3 d3@5 gb3@3 d3@5 gb3@3, ~@2 a3@2 a3@5 gb3@3 a3@5 gb3@3 a3@5 gb3@3 a3@5 gb3@3 a3@5 gb3@3 a3@5 gb3@3 a3@5 gb3@3 a3@4, ~@3 d4@7 a3 d4@7 a3 d4@7 a3 d4@7 a3 d4@7 a3 d4@7 a3 d4@7 a3 d4@5]/8",
  CP: "~@4 a3 gb3 d3 a2, d3@11 ~@5, ~ gb3@4 ~@3, ~ a3 ~@2, ~@6 d4@5 ~@5", CQ: "bb2 ~ gb2 ~ ab2 ~ bb2 ~",
  CR: "b2 ~ db3 ~ d3 ~ e3 ~", CS: "gb3 ~ g3 ~ gb3 ~ e3 ~", CT: "d3 ~ db3 ~ b2 ~ db3 ~", CU: "eb3 ~ b2 ~ db3 ~ eb3 ~",
  CV: "e3 ~ gb3 ~ g3 ~ a3 ~", CW: "b3 ~ c4 ~ b3 ~ a3 ~", CX: "g3 ~ gb3 ~ e3 ~ gb3 ~", CY: "g3 ~ e3 ~ a3 ~ g3 ~",
  CZ: "gb3 ~ e3 ~ d3 ~ e3 ~", DA: "gb3 ~ d3 ~ g3 ~ gb3 ~", DB: "e3 ~ d3 ~ db3 ~ d3 ~", DC: "e3 ~ db3 ~ gb3 ~ e3 ~",
  DD: "d3 ~ db3 ~ b2 ~ bb2 ~", DE: "b2 ~ d3 ~ db3 ~ b2 ~", DF: "bb2 ~ db3 ~ gb3 ~ db3 ~", DG: "b2 ~ g2 ~ a2 ~ b2 ~",
  DH: "c3 ~ d3 ~ e3 ~ f3 ~", DI: "g3 ~ ab3 ~ g3 ~ f3 ~", DJ: "e3 ~ d3 ~ c3 ~ b2 ~", DK: "db3 ~ a2 ~ b2 ~ db3 ~",
  DL: "d3 ~ e3 ~ f3 ~ e3 ~", DM: "d3 ~ bb2 ~ c3 ~ d3 ~", DN: "e3 ~ f3 ~ g3 ~ f3 ~", DO: "e3 ~ c3 ~ d3 ~ e3 ~",
  DP: "f3 ~ c3 ~ e3 ~ f3 ~", DQ: "g3 ~ c3 ~ f3 ~ g3 ~", DR: "a3 ~ c3 ~ g3 ~ a3 ~", DS: "bb3 ~ c3 ~ c4 ~ bb3 ~",
  DT: "a3 ~ g3 ~ f3 ~ e3 ~", DU: "d3 ~ c3 ~ b2 ~ a2 ~", DV: "e3 ~ e3 ~", DW: "e3@3 gb3", DX: "e3 ~ eb3 ~ db3 ~ eb3 ~",
  DY: "e3 ~ eb3 ~ db3 ~ b2 ~", DZ: "e3!4", EA: "e3!3 ~", EB: "a3 ~ a3 ~ a3 ~ a3 ~", EC: "[e3,a3] ~ a3 ~ a3 ~@3",
  ED: "a3 ~@7", EE: "[f3,a3] ~ a3 ~@5", EF: "~@6 a3 ~", EG: "[g3,a3] ~ a3 ~ a3 ~ a3 ~", EH: "a3 ~ a3 ~@3 a3 ~",
  EI: "[a3,bb3] ~ a3 ~ a3 ~ a3 ~", EJ: "[a3,b3] ~ a3 ~ a3 ~ a3 ~", EK: "[a3,db4] ~ a3 ~ a3 ~ a3 ~",
  EL: "[a3,d4] ~ a3 ~ a3 ~ a3 ~", EM: "[a3,e4] ~ a3 ~ a3 ~ a3 ~", EN: "[a3,f4] ~ a3 ~ a3 ~ a3 ~",
  EO: "bb3@2 ~@2 [d4,f4,bb4]@2 bb3 ~, [bb2,d3,f3]@13 ~@3, ~ bb3@2 ~", // Bb
  EP: "bb3@2 bb3@2 [d4,f4,bb4] ~ bb3 ~, [bb2,d3,f3]@5 ~@3", // Bb
  EQ: "bb3@2 ~@2 [eb4,gb4,bb4]@2 bb3 ~, [bb2,eb3,gb3]@3 ~, ~ bb3@2 ~", // Ebm
  ER: "bb3@4 ~@4 [eb4,gb4,bb4]@3 ~ bb3@2 ~@2, [bb2,eb3,gb3]@11 ~@5, ~@4 bb3@7 ~@5", // Ebm
  ES: "bb3@4 ~@4 [f4,ab4,bb4]@3 ~ bb3@2 ~@2, bb2@11 ~@5, ~@4 bb3@7 ~@5", // Bb7
  ET: "bb3@4 ~@4 [eb4,gb4,bb4]@3 ~ bb3@2 ~@2, bb2@11 ~@5, ~@4 bb3@7 ~@5", // Ebm
  EU: "bb3@4 ~@4 [d4,f4,bb4]@3 ~ bb3@2 ~@2, bb2@11 ~@5, ~@4 bb3@7 ~@5", // Bb
  EV: "bb3@2 ~@2 [eb4,gb4,bb4]@2 bb3 ~, bb2@13 ~@3, ~ bb3@2 ~", // Ebm
  EW: "bb3@2 ~@2 [eb4,gb4,bb4]@2 bb3 ~, bb2@3 ~, ~ bb3@2 ~", EX: "eb4@2 ~@2 [gb4,bb4,eb5]@2 eb4 ~, eb3@3 ~, ~ eb4@2 ~",
  EY: "b3@2 b3@2 [gb4,a4,b4] ~ b3 ~, b2@5 ~@3", // B7
  EZ: "[e4@2 e4@2 [ab4,b4,e5] ~@3 c4@2 c4@2 [g4,bb4,c5] ~ c4 ~, e3@5 ~ e4@7 ~@3, ~@8 c3@5 ~@3]/2", // E C7
  FA: "f4@2 f4@2 [a4,c5,f5] ~ f4 ~, f3 ~", FB: "db4@2 db4@2 [e4,g4,db5] ~ db4 ~, db3@9 ~@7",
  FC: "[d4@2 d4@2 [f4,a4,d5] ~@3 a3@2 a3@2 [db4,e4,a4] ~ a3 ~, d3@5 ~ d4@7 ~@3, ~@8 a2@5 ~@3]/2", // Dm A
  FD: "gb3@4 ~@4 [a3,c4,gb4]@3 ~ gb3@2 ~@2, gb2@11 ~@5, ~@4 gb3@7 ~@5", FE: "g3@2 g3@2 [bb3,d4,g4] ~ g3 ~, g2@9 ~@7",
  FF: "bb3@2 bb3@2 [d4,e4,bb4] ~ bb3 ~, bb2@5 ~@3", // Em7b5
  FG: "a3@4 ~@4 [db4,e4,a4]@3 ~ a3@2 ~@2, [a2,bb2]@11 ~@5, ~@4 a3@7 ~@5", // A Bbmaj7
  FH: "db4@4 ~@4 [e4,g4,db5]@3 ~ db4@2 ~@2, db3@11 ~@5, ~@4 db4@7 ~@5", FI: "d4@2 d4@2 [f4,a4,d5] ~ d4 ~, d3@5 ~@3",
  FJ: "a3@4 ~@4 [db4,e4,a4]@3 ~ a3@2 ~@2, a2@11 ~@5, ~@4 a3@7 ~@5", FK: "bb3@2 bb3@2 [d4,f4,bb4] ~ bb3 ~, bb2@5 ~@3",
  FL: "gb3@2 gb3@2 [a3,c4,gb4] ~ gb3 ~, gb2@9 ~@7", // Gbdim
  FM: "[g3@2 g3@2 [bb3,d4,g4] ~@3 bb3@2 bb3@2 [d4,bb4] ~ bb3 ~, g2@9 ~@3 g3@14 ~@6, ~@8 bb2@5 ~@3]/2", // Gm
  FN: "g3@2 g3@2 [d4,e4,g4] ~ g3 ~, g2@5 ~@3", FO: "bb3@2 bb3@2 [d4,e4,bb4] ~ bb3 ~, bb2@9 ~@7",
  FP: "g3@4 ~@4 [d4,e4,g4]@3 ~ g3@2 ~@2, g2@11 ~@5, ~@4 g3@7 ~@5", FQ: "a3@2 a3@2 [db4,e4,a4] ~ a3 ~, a2@5 ~@3",
  FR: "~@12 ab2 a2 [b2,db3] ~", FS: "d3@5 ~@11", FT: "~@12 ab2 a2 b2 db3", FU: "d3 ~@3", FV: "~@12 a2 b2 db3 d3",
  FW: "e3@5 ~@11", FX: "e3 ~@3", FY: "e2@10 ~@2 e2 f2 [g2,a2] ~", FZ: "bb2@5 ~@11", GA: "e2@11 ~ e2 f2 g2 a2",
  GB: "e2@12 e2 f2 g2 ~", GC: "a2@3 ~@9 d2 e2 f2 g2", GD: "a2@4 ~@8 d2 e2 f2 g2", GE: "a2 ~@3", GF: "~@12 d2 e2 f2 g2",
  GG: "~@13 e2 f2 g2", GH: "a2@4 ~@8 [d2,e2] f2 g2 ~", GI: "a2@5 ~@11", GJ: "d3/2", GK: "gb6@15 d6",
  GL: "~ gb6@13 d6@2",
  GM: "[~@96 gb6@27 ~@5, gb6 gb6 gb6 gb6 gb6 gb6 ~@2, ~@3 g6@8 g6@8 g6@8 ~@5, ~@20 e6@8 e6@24 e6@8 e6@24 e6@8 e6@31 ~@5, ~@3 d6@4 d6@4 d6@4 ~]/8",
  GN: "[[gb2,gb3]@31 ~]/2", GO: "[[b2,gb3]@15 ~]/2", GP: "[a2,a3]", GQ: "[~@17 d3@111, ~@15 d2@63 ~@50]/8",
})).s("gm_piano").gain(0.26)

// other · piano · "A.PIANO 3" · soft notes
const piano_soft = note(`<
  ~@50 A ~@9 B C ~@6 D ~ E F ~@10 G ~@3 G H ~ I ~ J K G L ~@2 M ~@6 N ~@2 O ~@3 P ~ Q ~ R S ~ T U ~ V W X Y Z V AA ~ AB
  V AC@3 ~@155 AD AE AF AG AH AE AF AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AS AT AW AJ AX AY AZ BA AX AY BB BC BD BE
  BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE BZ CA CF CG CH CI CJ@8 ~@8 A CK CL ~ CM
  CN ~@3 CO ~@86 CP ~@4 CQ@7 ~ CR@3 ~ CS@3 ~@25
>`.pickRestart({
  A: "~@6 a3 ~", B: "~@2 f3 ~@5", C: "~@6 f3 ~", D: "~@2 gb3 ~ gb3 ~ gb3 ~", E: "~@4 ab3 ~@3", F: "~@6 ab3 ~",
  G: "~@6 f4 ~", H: "~@2 bb4 ~@5", I: "~@6 b4 ab4", J: "~@6 bb4 ~", K: "~@2 a4 eb4 ~@4", L: "~@2 f4 ~@5",
  M: "~@6 eb4 ~", N: "~@3 bb4 ~@4", O: "~@7 d4", P: "~@3 f4 ~@4", Q: "~@6 eb5 ~", R: "~@6 eb5 f4", S: "~@3 gb4 ~@4",
  T: "~@2 eb5 ~@5", U: "~@3 c4 ~@2 eb5 eb4", V: "~@7 f4", W: "~@7 gb5", X: "~@2 g4 ~@5", Y: "~@3 eb5 ~@4", Z: "~@7 eb5",
  AA: "~@3 f4 ~@2 a4 f4", AB: "~@3 f4 ~@2 b4 f4", AC: "[~@6 f4@2 ~@6 f4@30 eb5@3 ~]/3", AD: "~@3 e3",
  AE: "~@2 c4 e4 ~@2 e4 g4", AF: "~@2 g4 c5 ~@2 b4 d5", AG: "~@2 c5 e5 ~@2 g4 c5", AH: "~@2 e4 g4 ~@2 d4 f4",
  AI: "~@2 c5 e5 ~@2 e5 c5", AJ: "~@2 d5 b4 ~@2 db5 bb4", AK: "~@2 c5 a4 ~@2 c5 ab4", AL: "~@2 c5 g4 ~@2 c5 gb4",
  AM: "~@2 b4 f4 ~@2 g4 e4", AN: "~@2 g4 d4 ~@2 g4 db4", AO: "~@2 g4 d4 ~@2 g4 e4", AP: "~@2 g4 c4 ~@2 g4 d4",
  AQ: "~@2 g4 b3 ~@2 g4 db4", AR: "~@2 g4 d4 ~@2 g4 b3", AS: "~@2 c3 [g3,c4] ~@2 e3 [c4,e4]",
  AT: "~@2 g3 [e4,g4] ~@2 b3 [f4,b4]", AU: "~@2 c4 [g4,c5] ~@2 g3 [e4,g4]", AV: "~@2 e3 [c4,e4] ~@2 d3 [b3,d4]",
  AW: "~@2 c4 [g4,c5] ~@2 e5 c5", AX: "~@2 c4 f4 ~@2 f4 a4", AY: "~@2 a4 c5 ~@2 c5 e5", AZ: "~@2 c5 f5 ~@2 a4 c5",
  BA: "~@2 f4 a4 ~@2 c4 g4", BB: "~@2 c5 f5 ~@2 a5 f5", BC: "~@2 g5 e5 ~@2 gb5 eb5", BD: "~@2 g5 d5 ~@2 gb5 c5",
  BE: "~@2 d5 bb4 ~@2 gb5 a4", BF: "~@2 g5 g4 ~@2 g5 e5", BG: "~@2 f5 d5 ~@2 e5 db5", BH: "~@2 f5 c5 ~@2 e5 bb4",
  BI: "~@2 c5 a4 ~@2 e5 g4", BJ: "~@2 f5 f4 ~@2 c5 eb5", BK: "~@2 bb4 eb5 ~@2 a4 eb5", BL: "~@2 bb4 eb5 ~@2 c5 eb5",
  BM: "~@2 d5 eb5 ~@2 f4 eb5", BN: "~@2 bb4 f5 ~@2 a4 c5", BO: "~@2 g4 c5 ~@2 gb4 c5", BP: "~@2 g4 c5 ~@2 a4 c5",
  BQ: "~@2 bb4 c5 ~@2 d4 c5", BR: "~@2 g4 d5 ~@2 g4 bb4", BS: "~@2 f4 bb4 ~@2 e4 bb4", BT: "~@2 d4 bb4 ~@2 c4 bb4",
  BU: "~@2 d4 bb4 ~@2 e4 bb4", BV: "~@2 db4 a4 ~@2 a4 db5", BW: "~@2 d4 d5 ~@2 f4 a4", BX: "~@2 bb3 bb4 ~@2 d4 gb4",
  BY: "~@2 g3 g4 ~@2 bb3 bb4", BZ: "~@2 c4 a4 ~@2 c4 g4", CA: "~@2 c4 f4 ~@2 c4 e4", CB: "~@2 db5 a3 ~@2 db5 a4",
  CC: "~@2 d5 d4 ~@2 a4 f4", CD: "~@2 bb4 bb3 ~@2 gb4 d4", CE: "~@2 g4 g3 ~@2 bb4 bb3", CF: "~@2 c4 bb4 ~@2 c4 a4",
  CG: "~@2 c4 g4 ~@2 c4 gb4", CH: "~@2 c4 e5 ~@2 c4 d5", CI: "~@2 c4 c5 ~@2 c4 b4",
  CJ: "[~@11 g5@3 ~@9 e5@3 ~@9 db5@3 ~@21 db4@3 g3 bb3, ~@2 bb5@4 g5@4 e5@8 e5@5 ~@3 e5@5 e5@8 e5@12 g4@12 ~, ~@3 db6@16 ~@3 db5@8 db5@5 ~@3 db5@5 db5@12 e4@8 ~, ~@7 bb5@7 g5@5 g5@8 g5@16 ~@3 g4@4 e4@4 db4@4 bb3@5 ~, ~@15 bb5@16 ~@3 bb4@8 bb4@5 bb4@16 ~]/8",
  CK: "~@2 a3 ~ a3 ~ a3 ~", CL: "a3 ~ a3 ~ a3 ~ a3 ~", CM: "~@4 a3 ~ a3 ~", CN: "a3 ~ a3 ~ a3 ~@3", CO: "~@4 a3 ~@3",
  CP: "~@12 d2 ~@3", CQ: "[~@7 d2@16 ~ d3@15 ~ d3@16, ~@23 d2@16 d2@16 ~]/7", CR: "[~ d3@2, ~@7 d2@16 ~]/3",
  CS: "[~@8 d3@13 ~@3, ~@7 d2@14 ~@3]/3",
})).s("gm_piano").gain(0.15)

stack(piano, piano_soft)