Strudelify

Irelia The Blade Dancer

League of Legends

KeyG majorTempo152 bpm
0:00/0:00
// Irelia The Blade Dancer — League of Legends
// 152 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: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5376809; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(152/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.

// other · flute · "Flétna"
const flute = note(`<
  ~@21 A ~ B ~ C ~ D E@2 F G H I J@2 K L M N O M@2 P Q R S T U V W X Y R S Z AA AB W X AC AD AE AF AG AH AI AJ AK AD AE
  AL AM AH AN AO AP AQ AR AS AT AU@2 AV AW AX@2 AY AZ BA BB BC BD BE@2 BF BG BH ~@9 BI BJ ~@7 BK AD AE BL AG AH AI BM BN
  AD AE AF BO AH AN AO BP AS AT AU@2 AV AW BQ@2 AY AZ BR BS BC BD BE@2 BF BG BT
>`.pickRestart({
  A: "~ g4 f#4 e4 f#4 g4 ~ f#4 e4 ~@7", B: "~@4 g4 f#4 e4 f#4 g4 f#4 e4 ~@5", C: "~@7 g4 f#4 e4 f#4 g4 f#4 e4 ~@2",
  D: "~@9 g4 f#4 ~ e4 f#4 g4 f#4", E: "[e4 ~@8 e4 g4 a4 b4 d5 e5 d5@4 ~@9 b4 a4 g4 a4]/2",
  F: "b4@4 ~ g4@4 ~@2 g4 a4 b4@2 ~", G: "d5@2 ~@2 g4 a4 b4 d5 ~@7 e4", H: "d4 e4 g4 b4@2 ~@3 d4 e4 g4 a4 ~@2 e5 f#5",
  I: "g5 f#5 e5 f#5 ~@3 e5 f#5 g5 f#5 e5 f#5 ~@3", J: "[~@2 b5 a5 g5 a5 b5@4 b5@4 ~ a5@6 g5@2 a5@4 ~ e6@4]/2",
  K: "d6@13 ~ a5@2", L: "b5@11 ~@3 e4 ~", M: "e5 ~@5 e4 ~ e5 ~@5 e4 ~", N: "e5 ~@5 e4 ~ f#5 ~@5 d4 ~",
  O: "f#5 ~@5 d4 ~ f#5 ~@5 d4 ~", P: "e5 ~ a4 b4 d5 e5 g5 a5 b5 g5 e5 d5 b4 a4 g4 b4", Q: "a4 e4 d4 g4 a4 b4 g4 a4 ~@8",
  R: "b4@2 a4 d5 b4@2 d5 e5", S: "b4@3 g4 e4@2 b4@2", T: "a4@2 g4 a4 d4@2 e4 g4", U: "e4 a4", V: "b4@2 e4@2 b4@2 a4 d5",
  W: "b4@3 g4 e4@2 g4 a4", X: "b4@2 e5 f#5 g5@2 e5 g5", Y: "e5@11 ~ a4@2 d5@2", Z: "a4@3 f#4 d4 e4 g4@2",
  AA: "e4@11 ~ e5@2 a5@2", AB: "g5@4 a5@2 f#5 d5", AC: "e5@2 b4 d5 b4 e4 g4 a4", AD: "b4@4 d5@3 e5",
  AE: "g5 f#5 e5@4 g5@2", AF: "f#5@3 d5 f#5@3 b5", AG: "a5@15 ~", AH: "b5@4 a5@3 b5", AI: "e5 f#5 g5@4 e6@2",
  AJ: "d6@3 b5 d6@3 e6", AK: "b5@9 ~ e4@2 g4@2 a4@2", AL: "f#5@3 d5 f#5@3 d6", AM: "b5@4 ~ e5 g5 a5",
  AN: "e5 f#5 g5@4 b5@2", AO: "a5@3 g5 a5@3 b5", AP: "e5@3 d5 e5@3 f#5", AQ: "e5@2 b4 a4 d5 e5 g5 f#5",
  AR: "b5 a5 e6@3 e6@3", AS: "e5 ~ g5 ~ a5@8 e5@4", AT: "e5 ~ g5 ~ a5@8 b5@4", AU: "[e5@3 f#5@3 g5@25 ~]/2",
  AV: "b5@15 ~", AW: "d6@11 ~ e6@4", AX: "[b5@23 ~@5 e5@4]/2", AY: "e5 ~ a5 ~ b5@8 e6@4", AZ: "a5 ~ g5 ~ a5@8 d6@4",
  BA: "b5@3 g5", BB: "e5@3 d5", BC: "b4@15 ~", BD: "d5@3 e5", BE: "[e5@15 ~]/2", BF: "f#5 g5", BG: "a5 b5",
  BH: "e6 ~@7", BI: "g5@2 f#5 g5 g5@2 e5 g5", BJ: "e5@11 ~@5", BK: "~@6 g4 a4", BL: "f#5@3 d5 f#5@3 g5",
  BM: "d6@3 c#6 d6@3 e6", BN: "e6@4 ~ e4 g4 a4", BO: "a5@11 ~@5", BP: "e5@2 e5 f#5 g5 a5 b5 d6 e6@2 ~@2 e6@2 ~@2",
  BQ: "[b5@27 ~ e5@4]/2", BR: "b5@11 ~ g5@4", BS: "e5@11 ~ d5@4", BT: "e5 ~@3",
})).s("gm_flute").gain(0.3)

// other · flute · "Flétna" · soft notes
const flute_soft = note(`<
  ~@2 A B C D E F@2 G H I J K L M N O P Q R ~@79 S T U V@2 U@2 ~ S W@5 X Y Z ~@35
>`.pickRestart({
  A: "~@5 e5 ~ f#5 g5@2 e5 f#5 g5 a5 e5 g5", B: "a5@2 ~ e5 f#5 g5 a5 e5 g5 a5@2 e5 f#5 g5 a5 ~",
  C: "~@4 d5 a5 g5 f#5 e5 f#5 g5@2 ~ e5 f#5 g5", D: "a5 e5 g5 a5@2 e5 f#5 g5 ~ a5 e5 g5 a5@2 e5 f#5",
  E: "g5 a5 ~@5 d5 a5 g5 f#5 e5 f#5 g5@2 e5",
  F: "[f#5 g5 ~ a5 e5 g5 a5@2 e5 f#5 g5 a5 e5 g5 ~ a5@2 e5 f#5 g5 a5 ~@4 d5 a5 ~ g5 f#5 e5 f#5]/2",
  G: "g5@2 e5 f#5 g5 a5 e5 g5 ~ a5@2 e5 f#5 g5 a5 e5", H: "g5 a5@2 e5 ~ f#5 g5 a5 ~@4 d5 a5 g5 f#5",
  I: "e5 ~ f#5 g5@2 e5 f#5 g5 a5 e5 g5 a5@2 e5 ~ f#5", J: "g5 a5 e5 g5 a5@2 e5 f#5 g5 a5 ~@5 d5",
  K: "a5 g5 f#5 ~@5 e5 f#5 g5 a5 ~@4", L: "e5 f#5 g5 a5 ~@5 e5 f#5 g5 a5 e5 d5 g5", M: "~ a5 ~@8 e5 f#5 g5@2 ~ e5",
  N: "g5 a5@2 e5 f#5 g5 a5 ~@5 e5 f#5 g5 a5", O: "~@2 g5 a5 d5 a5 ~ g5 f#5 ~@4 e5 f#5 g5",
  P: "a5 ~@5 e5 f#5 g5 a5 ~@4 e5 f#5", Q: "~ g5 a5 ~@4 d5 a5 g5 f#5 ~@5", R: "d4 e4 g4 a4 ~@12", S: "~@3 e4",
  T: "g4@15 ~", U: "e4@15 ~", V: "d4@15 ~", W: "e4 e5", X: "c4 c5", Y: "d4 d5", Z: "e5 ~",
})).s("gm_flute").gain(0.15)

// chords · piano · "Klavír"
const piano = note(`<
  A@3 ~@10 B C D@2 E F@5 G@2 H@6 I@5 J K L M N K O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BA BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB
  CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR@2 CS CT CU CV CW CX CY CZ DA DB BC BD DC DD BG DE DF DG@2 DH@2 DI@2
  DJ@2 DK
>`.pickRestart({
  A: "[~ [e5,b5]@11 ~@4]/3", B: "~@3 [e3,b3,b4]@4 ~ e3@4 e3@4", C: "e3@4 ~ [e3,b3]@4 [e2,e3,g4]@4 e3@3",
  D: "[~@2 [e3,b4]@4 [e3,a3,a4]@4 e3@4 ~ [e3,a4]@4 e3@4 [e3,e4,d5]@4 ~@3 a3@2, ~@23 a3@5 e3@4]/2", // E5 A5 E7
  E: "a3@2 a3@2 e3@4 ~ [e3,b3,b4,e5,b5]@4 e3@3, [e3,d5] ~@3", // E5 E7
  F: "[~ [e3,a5]@4 ~ e3@4 e3!3 ~@6 e3!3 ~ a2@4 [b2,b3]@8 ~ [d3,a3,d4]@6 ~ [e3,b3,e4]@2 g4@2 f#4@2 e4@8 ~ g4@4 [g2,d3,f#4]@8 ~ [g2,d3,f#4]@8 ~, ~@10 e2@8 ~ [g2,e5]@4 ~@22 [e1,e2]@16 ~@19, ~@5 b5@2 ~@33]/5", // A5 B D5 E5 Gmaj7 C E
  G: "[a4@8 ~@2 e4@4 ~ f#4@2 [b3,b4]@8 ~ [a3,d4,a4]@6, [e2,a2,e3]@16 ~ [e2,e3]@15]/2", // B D5 A5 E
  H: "[[b3,e4,b4]@2 [c2,c3]@16 ~@2 [a3,e4,a4]@8 [a3,e4,a4]@8 ~ [e1,e2]@16 ~ a1@4 ~ b2@4 d3@6 ~ [e3,e4]@2 [e1,e2]@16 ~ [g1,f#4]@7, ~@20 [d2,d3]@16 ~ [e4,e5]@8 ~@9 b3@8 ~@34]/6", // E5 C A5 E Gmaj7 D E
  I: "[d3@2 [f#3,f#4]@6 [g3,b4]@2 ~ [d1,d2]@16 ~ e1@4 e3@4 ~ [a3,a4]@6 [b3,b4]@2 ~@9 b3@4 b3@4 ~@14 [g3,g4,e5]@4, ~@28 b4@8 ~@9 [c1,c2]@16 ~@2 d2@17, ~@63 a4@7 a3@10, ~@67 d3@2 g4@7 ~@4, ~@68 a3 d3@2 [d3,a4]@9]/5", // F# G D A B C D5
  J: "~@15 b2, b1@8 d5@4 b1 b2 [b1,g4,d5]@2, f#4@7 a3@9, d5@5 a3 d5@2 [f#3,f#4]@8, ~@2 d3 [d3,e4]@5", // G F# Dsus2
  K: "[e2,b2,e3]@2 ~@4 e3 ~ [e2,b2,e3]@2 ~@4 e3 ~", L: "[e2,b2,e3]@2 ~@4 e3 ~ [e2,b2,e3]@2 ~@2 e3 b2 g2 ~",
  M: "[e2,b2,e3]@2 ~@4 e3 ~ [e2,b2,d3]@2 ~@4 d3 ~", N: "[e2,b2,d3]@2 ~@4 d3 ~ [e2,b2,d3]@2 ~@2 a3 f#3 d3 ~",
  O: "[e2,b2,e3]@2 ~@2 e3 b2 e3 ~ [e2,b2,e3] ~ e3 ~ e3 b2 e3 ~", // E5
  P: "[e2,b2,e3,b4,e5] ~ e3 ~ b2 ~ e2 ~ [e2,c3] ~ c3 ~ [g2,d3] ~ d3 ~", // E5 C G5
  Q: "[a2,d3] ~ a3 ~ a3 ~ d3 ~ [e2,e3,e4] ~ [e3,e4,b4] ~ [e3,e4,b4] ~ [d3,d4,a4] ~", // D5 E E5 D5
  R: "[e2,b2,e3] ~ e3 ~ e3 ~ e3 ~ [e2,b2,e3] ~ e3 ~ e3 ~ e3 ~, [b3,e4] ~ [b3,e4] ~", // E5
  S: "[e2,b2,e3] ~ e3 ~ e3 ~ [e2,e3] ~ [e2,b2,e3] ~ e3 ~ [e2,e3] ~ [e2,e3] ~, [b3,e4] ~", // E5 E E5 E E5
  T: "[e2,b2,e3] ~ e3 ~ e3 ~ e3 ~ [e2,b2,e3] ~ e3 ~ e3 ~ [e2,e3] ~, [a3,e4] ~ d3 ~", // E5 E A5
  U: "[e2,b2] ~ e3@2 e3@2 e3@2 [e2,b2,e3] ~ e3 ~ [e2,e3] ~ [e2,e3] ~, e3@2 ~@4 e2 ~ [a3,e4]@8", // E5 E A5
  V: "[c2,g2,c3] ~ c3 ~ c3 ~ c3 ~ [c2,g2,c3] ~ c3 ~ c3 ~ [c2,c3] ~, [b3,e4] ~ [b3,f#4] ~", // C5 C E5 B5
  W: "[d2,a2,d3] ~ d3 ~ d3 ~ [d2,d3] ~ [d2,a2,d3] ~ d3 ~ [d2,d3] ~ [d2,d3] ~, [b3,f#4] ~", // D5 D D5 D B5
  X: "[e2,b2,e3] ~ e3 ~ [b2,f#3] ~ f#3 ~ [c2,g2] ~ g2 ~ [g2,d3] ~ d3 ~, [b3,e4,b4] ~ [g4,c5,g5] ~", // E5 B5 C5 G5 E5 C5
  Y: "[d2,a2,d3] ~ d3 ~ d3 ~ [d2,d3] ~ [d2,a2,d3] ~ d3 ~ d2 d3 d2 d3, [e4,e5]@11 ~@5", // D5 D D5 E
  Z: "[c2,g2,c3] ~ c3 ~ c3 ~ [c2,c3] ~ [a2,e3] ~ e3 ~ [a2,e3] ~ [a2,e3] ~, [b3,e4,b4] ~ [b3,f#4,b4] ~", // C5 C A5 E5 B5
  AA: "[e2,b2,e3] ~ e3 ~ e3 ~ [e2,b2,e3] ~ e3 ~ e3 ~ [e2,b2,e3] ~ e2 b2, [b3,g4,b4]@2 ~ [b3,b4]", // E5 Em B
  AB: "[e2,b2,d3] ~ d3 ~ d3 ~ [e2,d3] ~ [e2,b2,d3] ~ d3 ~ d3 ~ [e2,d3] ~, [b3,f#4,a4]@2 ~ [g3,g4]", // E7 B7 G
  AC: "[d2,a2,d3] ~ d3 ~ d3 ~ [d2,a2,d3] ~ d3 ~ d3 ~ [d2,a2,d3] ~ d2 a2, [e3,g3,e4]@11 ~@5", // D5 Em
  AD: "[c2,g2,c3] ~ c3 ~ c3 ~ [c2,c3] ~ [a2,e3] ~ e3 ~ [a2,e3] ~ [a2,e3] ~, [g4,c5,g5] ~", // C5 C A5 C5
  AE: "[e2,b2,e3] ~ e3 ~ e3 ~ [e2,b2,e3] ~ e3 ~ e3 ~ [e2,b2,e3] ~ e2 b2, [b3,b4] ~", // E5 B
  AF: "[e2,e3] ~ e3 ~ [e2,e3] ~ e2 e3 [c2,c3] ~ c3 ~ [c2,c3] ~ c3 c2, [b3,b4] ~ [g4,c5,g5] ~", // E C B C5
  AG: "[d2,a2,d3] ~ d3 ~ d3 ~ [d2,a2,d3] ~ d3 ~ d3 ~ [d2,a2,d3] ~ d2 a2, [e4,d5,e5] ~@3", // D5 E7
  AH: "a1 ~@2 a1 a2 ~@3, [a3,b3]@15 ~", AI: "e1@2 ~@4 e1 ~ e2@2 ~@6, g4@15 ~",
  AJ: "g1@2 ~@4 g1 ~ g2@2 ~@6, [b3,f#4]@15 ~", AK: "d2@2 ~@4 d2 ~ [d4,e4,a4] ~ b5 a5 f#5 e5 d5 a4, [d4,e4,a4]@4 d3 ~@3",
  AL: "e2@2 ~@4 e2 ~ e3@2 ~@6, [e4,b4]@15 ~", AM: "c2@2 ~@4 c2 ~ c3@2 ~@6, [c4,e4]@15 ~",
  AN: "b1@2 ~@4 b1 ~ b2@2 ~@6, [f#4,a4,d5]@15 ~", AO: "e1 ~@2 e1 e2!2 d2 b1, [e4,a4,b4]@15 ~",
  AP: "[a1,a2]@2 ~@2 a2 ~ e2 ~ [a2,d3]@2 ~@2 a2 ~ [e4,e5]@2, [b3,b4]@8 [d4,a4,d5]@6 a1 ~", // A D5 E B D5
  AQ: "[e1,e2]@2 ~@2 [e1,e2]@2 ~@2 [e2,b2]@2 ~@2 e2 ~ e1 ~, [g4,b4,g5] [e4,e5]", // E E5 G E
  AR: "[g1,g2]@2 ~@2 [g1,g2]@2 ~@2 [g2,d3]@2 ~@2 g2 ~ g1@2, [f#4,d5,f#5]!2", // G G5 D
  AS: "[g1,g2]@2 ~@2 [g1,g2]@2 ~@2 g2 ~ d2 ~ [g1,g2] ~ [f#1,f#2] ~, [b4,d5,b5]@15 ~", // G F# Bm
  AT: "[e1,e2]@2 ~@2 [e1,e2]@2 ~@2 [e2,b2]@2 ~@2 e2 ~ e1 e2, [b4,d5,b5]@13 ~ [b4,b5]@2", // E E5 Bm B
  AU: "[c1,c2]@4 [c1,c2]@4 [c2,g2]@4 c2@2 c1 c2, ~ [g4,g5]@2 [b4,b5]", // C C5 G B
  AV: "e2@2 ~@2 [a2,d3] ~ d2 ~ d2@2 ~@2 [a2,d3] ~ d2 ~, [a4,e5,a5]!2", // D5 A5
  AW: "d2 ~ [a2,d3] ~ d3 ~ d2 ~ d2 ~ [a2,d3] ~ d3 ~ b1 ~, [e4,b4,e5] [f#4,a4,e5]", // D5 E5 F#m7
  AX: "[e1,e2,e4,e5]@4 [e1,e2] e2@2 e2", AY: "e2!2 e3 d3 [b2,e5,e6] a2 g2 d2, ~@2 [e5,e6]@2 ~ [e5,e6]@3",
  AZ: "[c1,c2] ~@3 [c1,c2]@4, ~ [c1,c2]@3 ~@4, ~ [a4,a5]@3", // C A
  BA: "~@8 [d2,a2]@4 ~@3 d1, d1@3 a2, ~ [a4,a5]@3, ~@6 d2!2, ~@13 d1@2 ~", // D5 A
  BB: "[e1,e2]@2 ~@10 e1 ~@2 e1, e4, e5@3 [g4,e5,g5]@5, ~@2 [e1,e2]@2 [e1,e2]@8 e2 e1 e2@2, ~@3 [f#4,f#5]@13", // E C E F#
  BC: "[g1,g2]@2 [g1,g2]@2 g2@4 [g2,d3]@4 ~@3 g1, [d5,f#5], ~ g1@2 d3, ~ [e5,g5], ~@12 g2 g1 g2@2", // G G5 D Em
  BD: "[c1,c2]!2 [c1,c2]@6, [b4,d5,b5]", BE: "~@8 [d2,a2]@4 ~@3 d1, [e1,d5,d6], ~@3 [a2,e5,e6], ~@6 d2!2, ~@13 d1@2 ~",
  BF: "[e1,e2]@2 [e1,e2]@2 ~@8 e1 ~@2 e1, [b4,e5,b5], ~@2 [e1,e2]@4 e2!2, ~ [a4,c5], ~@13 e1@2 ~", // E E5 E Am
  BG: "[g1,g2]@2 [g1,g2]@2 g2@4 [g2,e5]@4 ~@3 g1, [b4,d5], ~ g1@2 [e4,e5], ~ [d3,c5], ~@12 g2 g1 g2@2", // G C Bm E D7
  BH: "[c1,c2] ~@3 [c1,c2]@4, ~ [c1,c2]@3 ~@4, ~ [b4,b5]@3", BI: "[e1,e2]!2 [e1,e2]@6, [b4,e5,b5]",
  BJ: "~@8 [g2,d3]@4 ~@3 g1, [e4,d5,e5], g1@3 d3, ~@6 g2!2, ~@13 g1@2 ~", BK: "[c1,c2]!2 [c1,c2]@6, [b3,g4,b4]",
  BL: "~@8 [d2,a2]@4 ~@3 d1, [d4,f#4,d5], d1@3 a2, ~@6 d2!2, ~@13 d1@2 ~", // D5 D
  BM: "[c1,c2]!2 ~@4 c5@2, [e4,e5]@11 a4@5, g4@4 g4 g4@3, ~ [c1,c2]@3, ~@9 f#4@7", // C E C
  BN: "~@12 c1 ~@2 c1, [c1,c2]@10 a4@2 [c2,c5] c1 c2@2, g4@3 b4@6 f#4@7, ~ f#4@3 c5@7 b4@5, ~ a4@3 g4@4", // C
  BO: "[c1,c2]@2 [c1,c2]@2 ~@10 c2 [c2,g5], f#4@12 c2 e5 f#5@2, [e5,f#5]@3 d5, ~ c1@3, ~ c2 [g4,g5]@2", // C C5 Esus2 G
  BP: "[c1,c2]@2 [c1,c2]@2 ~@11 [c1,b5], a5@12 [c2,g5] [c1,f#5] [c2,a5]@2, e5@5 b4 d5 e5@9, a4 a4@3, ~ [c1,c2] [b4,d5,b5]@2", // C Cmaj7 C5 Cdim F C Bm
  BQ: "[e1,e2,e5,e6]@3 ~@3 e2@2 [b4,e5]@2 e5@2 [b4,e5]@2 e1 e2, ~@4 [e1,e2]@3 e5", // E E5 E
  BR: "[e1,b4,e5]@2 e5@2 [b4,e5]@2 [e2,e5]@2 [e1,e2,b4,e5]@2 e5@2 e1 e2 e1 e2, ~@6 [e4,e5] e5", // E5 E E5 E
  BS: "e1@3 ~@3 e2@2 [e1,e2]@3 ~ [e4,e5]@2 e1 e2, [e4,e5]@11 ~@3 [e4,e5]@2", // E
  BT: "e1@3 ~@3 e2@2 [e1,e2]@2 ~@2 e3@4, [e4,e5]@11 ~@5", BU: "~@7 g2, [g3,b3], g2@7 ~, ~ [a3,d4]", BV: "e3!2, [e2,b3]",
  BW: "~ [d3,b3], [d2,f#3,a3]", BX: "~@3 e3, [d2,a3,b3]", BY: "~ [a3,d4], [e2,g3,b3]", BZ: "~ e3, [e1,b3,e4]",
  CA: "e4 [c4,e4,g4], [e2,g3]", CB: "[e2,e3]@2 e3!2, [d4,e4,g4], ~ e2", CC: "b3 [e2,b3,e4], [e1,g3]",
  CD: "e3 [e2,e3], [e1,b3]", CE: "~ [e2,d3], [e1,e3,a3]", CF: "~ e2, [e1,c#3,e3]",
  CG: "~ [e2,d4,f#4,a4], [e1,b3,e4,g4]", CH: "~ c2, [c1,d4,f#4,b4]", CI: "d4 [d2,d4,e4,a4], [d1,f#3]",
  CJ: "d4@3 ~ [e2,c4,b4]@4, [e1,e4,a4], ~@3 d4@5", CK: "~@4 a3@4 a3@4 a3@2 ~ a3, b3, a2@7 [a2,e4], ~ d4",
  CL: "~@4 e3@4 e3@4 ~@3 e3, e2@7 e2, g4@3 ~, ~ f#4@7, ~ e4@2 [e3,e4,g4]", // Em
  CM: "~@6 d4@2 g3@4 g3@2 ~ g3, g2@7 [g2,b3,g4], f#4 [d4,f#4], d4@3 b3@4 ~, ~ g3 ~@2", // G D
  CN: "~@7 e3, d2, a3!2 g3@2, ~ b3@3 d3 a3@3, ~@2 d3 e3@3 [d3,b3]@2", // G
  CO: "b3@2 ~@4 b3@2 ~@2 d4@2 ~@3 e3, e2@7 [e2,b3], ~ b3@2 ~ b3@3 ~, ~@2 d4@3 ~@3, ~ e3!2 [e3,d4]", // E5 E7
  CP: "~@15 c3, c2@6 [c3,e3] [c2,g3], c4 [c3,c4] c4@2, ~ d4@7, ~@3 b3 c3 b3@3", // C C5 C
  CQ: "~@15 d3, d2@4 d3 f#3@2 [d2,b3], b3 b3@2 [d3,g3], ~ a3@7, ~@2 d3 g3 e3@4", // G G5
  CR: "[~@6 e2 ~ [a1,b3]@2 b2@2 d3@3 e3, e3@3 e3@4 [e2,e3]@3 ~@6, e2@2 b3@3 d4@5 ~@2 d4@2 ~@2, ~ a3@3 a3@6 ~@6, ~ e2!2 b3 ~@4]/2", // Asus2 E
  CS: "~@2 b3 [g3,g4], e1 ~, ~ e4@2 ~", CT: "g1@3 d3 f#3@3 g3, f#4 ~ f#4 ~", CU: "a4@2 b4 a4, [d1,d2]@15 ~",
  CV: "[e1,b4]@2 e3@2 a3@3 b3, ~@2 a4 ~", CW: "~ g4@2 b4, [c2,c3]@15 ~",
  CX: "d2@4 d3 a3 d3 a3 d3@4 ~@2 b4@2, a4@3 g4 a4@3 ~, ~@3 g3", CY: "[c2,c3]@3 [c2,c3] [d2,d3,e4,e5] ~ [e4,e5] ~, e4 ~",
  CZ: "[c1,c2]!2 ~@4 [e4,e5]@2, [e4,e5]@3 ~, ~ [g4,g5]@7, ~ [c1,c2,a4,a5]@3", // C E G F
  DA: "~@8 [d2,a2]@4 ~@3 d1, [e4,e5]@12 d2 d1 d2@2, d1@3 [a2,b4,b5], ~ [g4,g5]@7, ~ [a4,a5]@3", // D5 E Asus2 G A
  DB: "[e1,e2]@2 ~@10 e1 ~@2 e1, [e4,e5], ~ [e1,e2] [e1,e2]@4 e2 [e2,g4,g5], ~@3 [f#4,f#5]@13, ~@6 [g4,g5]@7 e1@2 ~", // E Em F# G
  DC: "~@8 [d2,a2]@4 ~@3 d1, [d5,d6], d1@3 [a2,e5,e6], ~@6 d2!2, ~@13 d1@2 ~", // D5 D A5
  DD: "[e1,e2]@2 [e1,e2]@2 ~@11 e1, [b4,e5,b5], ~@2 [e1,e2]@4 e2!2, ~ [a4,c5], ~@13 e1@2 ~", // E E5 E Am
  DE: "[c1,c2] ~@5 [e5,e6]@2, e4, e5 [c1,c2], ~ [a4,a5]@7, ~ [c1,c2] [b4,b5]@6", // C E C A C B
  DF: "~@8 [d2,a2]@4 ~@3 d1, d1@3 [a2,d5,d6], [a4,a5] [a4,a5]@3, ~ [g4,g5]@7, ~@12 d2 d1 d2@2", // D5 A G
  DG: "[[e1,e2]@2 [e1,e2]@2 ~@20 [e2,d3]@4 ~@3 e1, [b4,b5]@28 e2 e1 e2@2, e5@3 [g4,g5]@5, ~ e2@3 [e1,d5]@3 [d3,d4,d5], ~ e1@3 [e4,e5]@4]/2", // E E7 B G E7 D E
  DH: "[[e1,e2]@2 [e1,e2]@2 e1@12 ~@8 [e2,b2]@4 ~@3 e1, [b3,g4,b4], ~ e2@5 ~ [b2,e4,e5], ~ [d4,f#4,d5], ~@16 e1@12 e2 e1 e2@2]/2", // E E5 Em E5 D
  DI: "[[c1,c2]!2 [c1,c2]@6 [c1,c2]@6 [c1,c2]@2, [e4,g4,e5]]/2", // C Em
  DJ: "[~@16 a4@4 ~@11 b5, f#4@24 [b4,d5,b5]@4 g5 f#5 a5@2, [e5,f#5]@12 d5@3 g5 a5@5 b4 d5 e5@9, ~ g4@3, ~@8 g5@5 e5 f#5@2 e5@4 a4@12]/2", // Bm Esus2
  DK: "[e1,e5] ~@7", // E
})).s("gm_piano").gain(0.4)

// chords · piano · "Klavír" · soft notes
const piano_soft = note("<~@2 A@2 B@7 C D@2 ~@135 E@2 ~>".pickRestart({
  A: "[~@5 e4@3 g5@2 e5@2 g5@2 e5@2 a5@2 ~ e5@2 g5@2 e5@2 a5@2 e5@2 g5@2 ~, ~@5 e5@2 ~@3 e4@4 e4@4 ~ e4@4 e4@4 e4@4 ~]/2",
  B: "[e5@2 g5@2 d5@2 g5@2 e5@2 g5@2 ~ e5@2 g5@2 e5@2 a5@2 e5@2 g5@2 ~ e5@2 a5@2 e5@2 g5@2 e5@2 g5@2 ~ d5@2 g5@2 e5@2 g5@2 e5@2 g5@2 ~ e5@2 a5@2 e5@2 g5@2 e5@2 ~ a5@2 e5@2 g5@2 e5@2 g5@2 d5@2 ~ g5@2 e5@2 g5@2 e5@2 g5@2 e5@2 ~ a5@2 e5@2 g5@2 e5@2 a5@2 e5@2 ~ g5@2 e5@2 g5@2 d5@2 g5@2, e4@4 e4@4 [e3,b3]@8 ~ d4@8 ~@5 e4@8 ~ g4@4 e3@8 ~ g3@8 d3@8 ~@10 [e4,b4]@8 [e4,a4]@8 ~ [e4,b4]@8 ~ g4@8]/7", // E5 A5 E5
  C: "e5@2 ~ g5@2 e5@2 g5@2 b4 d5 [b4,a5]@2 e5@2 ~, [a3,a4]@8 ~ e5@2 ~@5", // B7 A
  D: "[g5@2 e5@2 a5@2 e5@2 g5@2 ~ e5@2 g5@2 d5@2 g5@2 ~@13, ~@2 [a3,a4]@8 ~ b4 ~ b4 ~@18]/2", // A
  E: "[~@31 c2, c1!8 c1!8, ~ c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 ~]/2",
})).s("gm_piano").gain(0.2)

stack(flute, flute_soft, piano, piano_soft)