Strudelify

Swan Lake (ballet) Op.20

Hinci

KeyA majorTempo120 bpm
0:00/0:00
// Swan Lake (ballet) Op.20 — Hinci
// 120 bpm, 3/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/6358110; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 105 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 L M N O P Q R S T U V W X Y Z R S T U V W X Y AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ ~ AR AS AT AU AV AS AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BH BL BM BN BO BP BQ BR BS BT BU BV BW BV BW BX BY
  BZ CA CB CC CD CE CF CG CH CI CJ CK CL@2
>`.pickRestart({
  A: "[f#2,f#3,c#4,f#4,a4,f#5,a5,c#6,f#6]@4 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2", // F#m
  B: "[f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3]@2 ~@2, ~@5 c#5", // F#m
  C: "f#5@11 ~ a5 ~ g#5 ~ f#5@2 ~@2 g#5@2 ~@2", D: "c#5@11 ~ f#5 ~ e5 ~ d5@2 ~@2 g#5@2 ~@2",
  E: "c#5@11 ~ d5 ~ c#5 ~ b4@2 ~@2 c#5 ~ b4 ~", F: "a4@11 ~ b4 ~ a4 ~ g#4@2 ~@2 a4 ~ g#4 ~",
  G: "[f#3,a3,f#4]@2 ~@2 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [d3,g#3,b3,f#4]@2 ~@2 [b2,b3,d4,f#4]@2 ~@2", // F#m G#m7b5 Bm
  H: "[f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [d3,g#3,b3,f#4]@2 ~@6", // F#m G#m7b5
  I: "~@5 c#5", J: "~@3 c#3 d#3@3 f3 f#3@3 g#3 a3@2 g#5 c#4 d4@4 g#5@2 ~@2, f#5@11 ~ a5 ~@3 f#5@2 ~@6",
  K: "~@3 c#4 d#4@3 f4 f#4@3 g#4 a4@2 e5 c#5 d5@4 g#5@2 ~@2, c#5@11 ~ f#5 ~@11",
  L: "c#5@3 ~ d#5@3 f5 f#5@3 g#5 a5@2 c#5 c#6 f#6@4 c#5 ~ b4 ~, ~@3 c#5@8 ~ d5 ~@3 b4@2 ~@6",
  M: "~@3 c#4 d#4@3 f4 f#4@3 g#4 a4@2 a4 c#5 f#5@4 a4 ~ g#4 ~, a4@11 ~ b4 ~@3 g#4@2 ~@6",
  N: "[f#3,a3,f#4]@2 ~@2 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4]@2 ~@2 [d3,a3,d4,f#4]@2 ~@2 [b2,a3,d4,f#4]@2 ~@2 [e3,g#3,d4,e4]@2 ~@2", // F#m D Bm7 E7
  O: "[a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@2 [d3,a3,d4,f#4]@2 ~@2 [b2,a3,d4,f#4]@2 ~@2 [e3,g#3,d4,e4]@2 ~@2", // A D Bm7 E7
  P: "[e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]!2 [c#4,e4]@2 [c#4,e4]@2 [c#4,e4]@2 [c#4,e4]@2, ~@4 [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~", // A C#m A5
  Q: "[e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]!2 [c#4,e4]@2 [c#4,e4]@2 [c#4,e4]@2 [e4,e5]@2, ~@4 [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~", // A C#m E A5
  R: "[e3,a3,c#4,e4,c#5,e5,a5]@4 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 ~ [c#5,e5] [e3,a3,a4,f#5]@3 [e5,g#5] [c#4,e4,c#5,a5]@3 [a5,c#6] [e3,a3,g#5,b5]@3 [f#5,a5], ~@8 [e3,a3] ~@3", // A A5 C#m F#m7 E A E F#m …
  S: "[e3,b3,d4,e4,e5,g#5]@3 [f#5,a5] [e3,b3,e5,g#5]@2 ~ [b4,d5] [e3,b3]@2 ~@2 [e3,b3]@2 ~@2 [d4,e4]@4 [b3,b4]@4, ~@3 [e3,b3] [d5,f#5]@4 [e3,b3] ~ e3 ~", // E7 F#m E Bm E5 Dsus2 B E5 …
  T: "[e3,b3,d4,e4,d5,f#5]@4 [e3,b3]@2 [e3,b3]@2 [e3,b3]@2 ~ [g4,a#4] [e3,b3,g#4,b4]@3 [a#4,c#5] [d4,e4,b4,d5]@3 [f#5,a5] [e3,b3,e5,g#5]@3 [d5,f#5], ~@8 [e3,b3] ~@3", // Bm E5 Gm E A#m E7 F#m E …
  U: "[e3,a3,c#4,e4,c#5,e5]@3 [d5,f#5] [e3,a3,e5,g#5]@2 ~ [f#5,a5] [e3,a3]@2 ~@2 [e3,a3]@2 ~@2 [c#4,e4]@4 [e3,a3]@2 ~@2, ~@3 [e3,a3] [c#5,e5]@4 [e3,a3] ~@3", // A D Amaj7 F#m A5 C#m A5 C#m …
  V: "[e3,a3]@4 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 ~@2 [e3,a3]@2 ~@2 [e3,a3,g#4,b4]@3 [a4,c#5] [e3,a3,b4,d5]@3 [c#5,e5], [a4,c#5]!2 ~", // A5 E A Esus4 C#m A
  W: "[e3,b3]@2 [e3,b3]!2 [g#5,b5]@2 [e6,g#6]@2 [g#5,b5]@2 [e6,g#6]@2, [d5,f#5]@4 [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", // E5 G#m E G#m E D E5
  X: "[e3,b3]@4 [e3,b3]@2 [e3,b3]@2 [e3,b3]@2 ~@2 [e3,b3]@2 ~@2 [e3,b3,f#4,a4]@3 [g#4,b4] [e3,b3,a4,c#5]@3 [b4,d5], [g#4,b4]!2 ~", // E5 Esus4 G#m A Bm G#m
  Y: "[e3,a3]@2 [e3,a3]!2 [f#5,a5]@2 [c#6,e6]@2 [f#5,a5]@2 [c#6,e6]@2, [c#5,e5]@4 [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~", // A5 F#m C#m F#m C#m A5
  Z: "[e3,a3]@2 [e3,a3]!3 ~ [e3,a3] ~ [e3,a3] ~ [e4,e5]@2, ~@10 [e3,a3] ~", // A5 E A5
  AA: "[e3,a3]@2 [e3,a3]!2 [c#5,e5]@2 [a5,c#6]@2 [c#5,e5]@2 [a5,c#6]@2, ~@4 [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~", // A5 C#m A C#m A A5
  AB: "[c#3,f3,b3]@2 [c#3,f3,b3]!3 ~ [c#3,f3,b3] ~ [c#3,f3,b3] ~ [c#3,f3,b3] ~, ~@2 [b4,c#5] [b5,c#6] [b4,c#5] [b5,c#6]", // C#7 Bsus2
  AC: "[f#3,a3,c#4,f#4]@4 [f#3,a3,f#4] ~ [f#3,a3,f#4] ~ [c#4,f#4]@4 [c#4,f#4]@4 [c#4,f#4]@4 [c#4,f#4]@4, ~@2 c#3@2 [f#3,a3] ~ [f#3,a3] ~ [f#3,a3] ~ [f#3,a3] ~, ~@2 c#4!2 ~@8", // F#m F#5 F#m
  AD: "[f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,f#4] ~ [f#3,a3,f#4] ~ [c#4,f#4]@4 [c#4,f#4]@4 [f#3,a3]@2 ~@2 [c#5,c#6]@4, ~@2 c#3@2 [f#3,a3] ~ [f#3,a3] ~@3 [f#3,a3] ~, ~@2 c#4!2 ~@4 [c#4,f#4]@4", // F#m F#5 F#m C# F#m F#5
  AE: "~@4 c#3@4 c#4@4 [a5,a6] ~ [g#5,g#6] ~ [f#5,f#6]@2 ~@2 [g#5,g#6]@2 ~@2, [f#5,f#6]@11 ~@13, ~@2 c#4 ~ f#4@8", // A G# F# G# F#
  AF: "~@4 c#3@4 c#4@4 [f#5,f#6] ~ [e5,e6] ~ [d5,d6]@2 ~@2 [g#5,g#6]@2 ~@2, [c#5,c#6]@11 ~@13, ~@2 c#4 ~ f#4@8", // F# E D G# C#
  AG: "~@4 c#3@4 c#4@4 [d5,d6] ~ [c#5,c#6] ~ [b4,b5]@2 ~@2 [c#5,c#6] ~ [b4,b5] ~, [c#5,c#6]@11 ~@13, ~@2 c#4 ~ f#4@8", // D C# B C# B C#
  AH: "~@4 c#3@4 c#4@4 [b4,b5] ~ [a4,a5] ~ [g#4,g#5]@2 ~@2 [a4,a5] ~ [g#4,g#5] ~, [a4,a5]@11 ~@13, ~@2 c#4 ~ f#4@8", // B A G# A G# A
  AI: "[f#3,a3,f#4,f#5]@2 ~@2 [f#3,a3,f#4] ~ [f#3,a3,f#4] ~ [c#4,f#4]@4 [f#3,a3]@2 ~@2 [d3,g#3,b3]@2 ~@2 [b2,b3,d4]@2 ~@2, ~@2 c#3@2 [f#3,a3] ~ f#4@2 f#4@2 f#4@2, ~@2 c#4!2 ~@2 c#4@6", // F#m F#5 F#m G#dim Bm F#m
  AJ: "[f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,f#4] ~ [f#3,a3,f#4] ~ [c#4,f#4]@4 [f#3,a3]@2 ~@2 [d3,g#3,b3]@2 ~@6, ~@2 c#3@2 [f#3,a3] ~ f#4@2 f#4@2 ~@2, ~@2 c#4!2 ~@2 c#4@6", // F#m F#5 F#m G#dim F#m
  AK: "~@2 [c#4,f#4] ~@3", AL: "~@2 [c#4,f#4] ~@2 [c#5,c#6]",
  AM: "~@8 c#4@4 [a5,a6] ~ [g#5,g#6] ~ [f#5,f#6]@2 ~@2 [g#5,g#6]@2 ~@2, [f#5,f#6]@11 ~@13, ~ f#4@2", // A G# F# G# F#
  AN: "~@8 c#4@4 [f#5,f#6] ~ [e5,e6] ~ [d5,d6]@2 ~@2 [g#5,g#6]@2 ~@2, [c#5,c#6]@11 ~@13, ~ f#4@2", // F# E D G# C#
  AO: "~@8 c#4@4 [d5,d6] ~ [c#5,c#6] ~ [b4,b5]@2 ~@2 [c#5,c#6] ~ [b4,b5] ~, [c#5,c#6]@11 ~@13, ~ f#4@2", // D C# B C# B C#
  AP: "~@8 c#4@4 [b4,b5] ~ [a4,a5] ~ [g#4,g#5]@2 ~@2 [a4,a5] ~ [g#4,g#5] ~, [a4,a5]@11 ~@13, ~ f#4@2", // B A G# A G# A
  AQ: "[f#4,a#4,f#5] ~@5", AR: "~ [f#4,a#4] [a#4,c#5]@2 [g#4,b4] [f#4,a#4]",
  AS: "[a#4,c#5]@2 [g#4,b4] [f#4,a#4] [g#4,b4]@2", AT: "~ [g#4,b4] [b4,d#5]@2 [a#4,c#5] [a4,c5]",
  AU: "[b4,d#5]@2 [a#4,c#5] [a4,c5] [a#4,c#5]@2", AV: "~ [a#4,c#5] [d#5,f#5]@2 [c#5,f5] [b4,d#5]",
  AW: "~ [g#4,b4] [c#5,f5]@2 [b4,d#5] [a#4,c#5]", AX: "[g#4,b4]@2 [f#4,a#4] [f4,a4] [f#4,a#4]@2",
  AY: "f#3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 [g#4,b4,g#5,b5]@4 [f#4,a#4,f#5,a#5]@4, ~@2 [f#4,a#4,f#5,a#5]@2 [a#4,c#5,a#5,c#6]@4 c#3 ~ c#4 ~", // G#m F# A#m
  AZ: "f#3@2 ~@2 c#4 ~ c#4 ~ [g#4,b4,g#5,b5]@4 [f#4,a#4,f#5,a#5]@4 c#3@2 ~@2 c#4@2 ~@2, [a#4,c#5,a#5,c#6]@4 c#4 ~ c#4 ~ [g#4,b4,g#5,b5]@4", // G#m F# A#m G#m
  BA: "f3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 [a#4,c#5,a#5,c#6]@4 [a4,c5,a5,c6]@4, ~@2 [g#4,b4,g#5,b5]@2 [b4,d#5,b5,d#6]@4 c#3 ~ c#4 ~", // A#m Am G#m B
  BB: "f3@2 ~@2 c#4 ~ c#4 ~ [a#4,c#5,a#5,c#6]@4 [a4,c5,a5,c6]@4 c#3@2 ~@2 c#4@2 ~@2, [b4,d#5,b5,d#6]@4 c#4 ~ c#4 ~ [a#4,c#5,a#5,c#6]@4", // A#m Am B A#m
  BC: "f#3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 [f5,g#5,f6,g#6]@4 [d#5,f#5,d#6,f#6]@4, ~@2 [a#4,c#5,a#5,c#6]@2 [f#5,a#5,f#6,a#6]@4 c#3 ~ c#4 ~", // Fm D#m A#m F#
  BD: "[c#5,f5,c#6,f6]@4 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 c#3@2 ~@2 [f5,g#5,f6,g#6]@4, f#3 ~ [f5,g#5,f6,g#6]@4 [g#4,b4,g#5,b5]@4 c#4 ~", // C# Fm G#m
  BE: "f3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 [d#5,f#5,d#6,f#6]@4 [c#5,f5,c#6,f6]@4, ~@2 [g#4,b4,g#5,b5]@2 [f5,g#5,f6,g#6]@4 c#3 ~ c#4 ~", // D#m C# G#m Fm
  BF: "[b4,d#5,b5,d#6]@4 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 c#3@2 ~@2 [a#4,c#5,a#5,c#6]@4, f3 ~ [d#5,f#5,d#6,f#6]@4 [f#4,a#4,f#5,a#5]@4 c#4 ~", // B A#m D#m F#
  BG: "f#3@2 ~@2 c#4 ~ c#4 ~ c#4@4 c#4@4 [b3,g#4,b4]@4 [a#3,f#4,a#4]@4, ~@2 [a#3,f#4,a#4]@2 [a#4,c#5]@4 c#3 ~ c#4 ~", // E D#m A#m
  BH: "c#4@2 c#4!2 [b3,g#4,b4]@2 [a#3,f#4,a#4]@2 c#3 ~ c#4 ~, [a#4,c#5] ~@2, f#3 ~@3 c#4 ~ c#4 ~ [b3,g#4,b4]@4", // E D#m A#m E
  BI: "f3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 [c#4,a#4,c#5]@4 [c4,a4,c5]@4, ~@2 [b3,g#4,b4]@2 [d#4,b4,d#5]@4 c#3 ~ c#4 ~", // F# F E G#m
  BJ: "f3@2 ~@2 c#4 ~ c#4 ~ [c#4,a#4,c#5]@4 [c4,a4,c5]@4 c#4@4 c#4@4, [d#4,b4,d#5]@4 ~@2 c#4 ~ [a#4,c#5]@4, ~@8 c#3 ~@3", // F# F G#m A#m
  BK: "f#3 ~ c#4!3 ~ c#4 ~ [f4,c#5,f5]@2 [d#4,b4,d#5]@2, ~@2 [a#4,c#5]@2 [f#4,d#5,f#5]@4 c#3 ~ c#4 ~", // C# G#m A#m D#m
  BL: "f3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 [d#4,b4,d#5]@4 [c#4,a#4,c#5]@4, ~@2 [b3,g#4,b4]@2 [f4,c#5,f5]@4 c#3 ~@3", // G#m F# E C#
  BM: "f3@2 ~@2 c#4 ~ c#4 ~ [a#3,f#4,a#4]@4 [a3,f4,a4]@4 c#3@2 ~@2 c#4@2 ~@2, [b3,g#4,b4]@4 c#4 ~ c#4 ~ [a#3,f#4,a#4]@4", // D#m Dm E D#m
  BN: "f#3@2 ~@2 c#4 ~ c#4 ~ c#4@4 c#4@4 [b3,g#4,b4,g#5,b5]@4 [a#3,f#4,a#4,f#5,a#5]@4, ~@2 [a#3,f#4,a#4,f#5,a#5]@2 [a#4,c#5,a#5,c#6]@4 c#3 ~ c#4 ~", // E D#m A#m
  BO: "c#4@2 c#4!2 [b3,g#4,b4,g#5,b5]@2 [a#3,f#4,a#4,f#5,a#5]@2 c#3 ~ c#4 ~, [a#4,c#5,a#5,c#6] ~@2, f#3 ~@3 c#4 ~ c#4 ~ [b3,g#4,b4,g#5,b5]@4", // E D#m A#m E
  BP: "f3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 [c#4,a#4,c#5,a#5,c#6]@4 [c4,a4,c5,a5,c6]@4, ~@2 [b3,g#4,b4,g#5,b5]@2 [d#4,b4,d#5,b5,d#6]@4 c#3 ~ c#4 ~", // F# F E G#m
  BQ: "f3@2 ~@2 c#4 ~ c#4 ~ [c#4,a#4,c#5,a#5,c#6]@4 [c4,a4,c5,a5,c6]@4 c#4@4 c#4@4, [d#4,b4,d#5,b5,d#6]@4 ~@2 c#4 ~ [a#4,c#5,a#5,c#6]@4, ~@8 c#3 ~@3", // F# F G#m A#m
  BR: "f#3 ~ c#4!3 ~ c#4 ~ [g#4,f5,g#5,f6,g#6]@2 [f#4,d#5,f#5,d#6,f#6]@2, ~@2 [a#4,c#5,a#5,c#6]@2 [a#4,f#5,a#5,f#6,a#6]@4 c#3 ~ c#4 ~", // C# D#m A#m D#m
  BS: "[f4,c#5,f5,c#6,f6]@4 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 c#3@2 ~@2 [g#4,f5,g#5,f6,g#6]@4, f#3 ~ [g#4,f5,g#5,f6,g#6]@4 [b3,g#4,b4,g#5,b5]@4 c#4 ~", // C# E
  BT: "f3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 [f#4,d#5,f#5,d#6,f#6]@4 [f4,c#5,f5,c#6,f6]@4, ~@2 [b3,g#4,b4,g#5,b5]@2 [g#4,f5,g#5,f6,g#6]@4 c#3 ~ c#4 ~", // D#m C# E C#
  BU: "[d#4,b4,d#5,b5,d#6]@4 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 c#3@2 ~@2 [c#4,a#4,c#5,a#5,c#6]@4, f3 ~ [f#4,d#5,f#5,d#6,f#6]@4 [a#3,f#4,a#4,f#5,a#5]@4 ~@2", // G#m F# D#m
  BV: "[b1,b2,f#3,b3,d#4,f#4,f#5,b5,d#6,f#6]@4 [f#4,f#5]@3 [f#4,f#5] [f#4,f#5]@3 [f#4,f#5] [f#4,f#5]@3 [f#4,f#5] [f#4,f#5]@3 [g#4,g#5] [f#3,a#3,f#4,f#5]@3 [g#4,g#5], ~ f#3@2 [f#3,a#3]@2 ~", // B F# G# F# G# F#
  BW: "[c#3,a#3,c#4,a#4,a#5]@3 [c#4,c#5,c#6] [a#3,c#4,d#4,f#4,d#5,d#6]@3 [f4,f5,f6] [a#3,c#4,f#4,f#5,f#6]@3 [g#4,g#5] [a#3,c#4,f#4,a#4,a#5]@3 [b4,b5] [a#3,c#4,f#4,c#5,c#6]@3 [d#5,d#6] [a#3,c#4,f#4,f5,f6]@3 [f#5,f#6]", // F# C# D#m7 F F# G# F# B …
  BX: "[b2,d#4]@2 f#4@2 [b3,d#4,f#4]@2 f#5 [b2,d#4]@2 f#4@2 [b3,d#4,f#4]@2 f#4@2 [b2,d#4]@2 [f#4,f#5] [b3,d#4,f#4]@2 f#4@2 [a#2,a#3]@2, f#5 ~ f#5 ~ f#5 ~ f#4@2 ~@16, ~@7 f#5 ~ f#5 ~ f#5 ~ f#5 ~ g#5 ~@2 f5 ~ d#5 ~ c#5 ~", // B F# B A#
  BY: "f#4@2 [a#3,c#4,f#4]@2 f#4@2 c#5 f#4@2 [a#3,c#4,f#4]@2 f#4@2 [a#2,a#3]@2 f#4@2 [f#4,f#5] f#4@2 [g#2,g#3]@2 b3@2, c#5 ~ c#5 ~ c#5 ~ [a#2,a#3]@2 ~@9 [a#3,c#4]@2 ~@5, ~@7 c#5 ~ c#5 ~ c#5 ~ d#5 ~ f5 ~@2 g#5 ~ b4 ~ b4 ~", // F# A# F# G# A# A#m
  BZ: "[g#3,d#4,g#4]@2 b3@2 b4 ~ b4 [g#3,d#4,g#4]@2 b3@2 [g#2,g#3]@2 b3@2 [g#3,d#4,g#4]@2 g#5 [f#3,a#3,c#4,f#4]@2 [c#5,c#6]@2 [a#3,c#4,f#4,d#5,d#6]@2, b4 ~ b4 ~ [g#2,g#3]@2 ~@11 b3@2 ~@5, ~@5 b3@2 b4 ~ b4 ~ c#5 ~ d#5 ~ f5 ~@8", // G#5 G# G#5 F# C# D#m7 G#
  CA: "[f5,f6]@2 [a#3,c#4,f#4,f#5,f#6]@2 [f5,f6]@2 ~ [c#5,c#6]@2 [a#3,c#4,f#4,b4,b5]@2 [a#4,a#5]@2 [a#3,c#4,f#4,g#4,g#5]@2 [f#4,f#5]@2 f#5 f#4@2 [b3,d#4,f#4]@2 f#4@2, ~@6 [a#3,c#4,f#4,d#5,d#6]@2 ~@9 [b2,d#4]@2 ~@5, ~@18 f#5 ~ f#5 ~ f#5 ~", // F F# F C# F# A# F# B …
  CB: "[b2,d#4]@2 f#4@2 [f#4,f#5] ~ f#5 [b2,d#4]@2 f#4@2 [b3,d#4,f#4]@2 f#4@2 [a#2,a#3]@2 [f#4,c#5] [a#3,c#4,f#4]@2 f#4@2 [a#2,a#3]@2, f#5 ~ f#5 ~ [b3,d#4]@2 ~@18, ~@5 f#4@2 g#5 ~ f#5 ~ f5 ~ d#5 ~ c#5 ~@2 c#5 ~ c#5 ~ c#5 ~", // B F# B A# F#5 F# A# B
  CC: "f#4@2 [a#3,c#4,f#4]@2 c#5 ~ d#5 f#4@2 [a#3,c#4,f#4]@2 f#4@2 [g#2,g#3]@2 b3@2 b4 b3@2 [g#2,g#3]@2 b3@2, c#5 ~ c#5 ~ f#4@2 a#2@2 ~@9 [g#3,d#4,g#4]@2 ~@5, ~@5 a#3@2 f5 ~ f#5 ~ g#5 ~ b4 ~ b4 ~@2 b4 ~ b4 ~ b4 ~", // F# G# G#5
  CD: "[g#3,d#4,g#4]@2 b3@2 c#5 ~ d#5 [g#3,d#4,g#4]@2 b3@2 [f#3,a#3,c#4,f#4]@2 [c#5,c#6]@2 [a#3,c#4,f#4,d#5,d#6]@2 ~ [a#3,c#4,f#4,f#5,f#6]@2 [f5,f6]@2 [a#3,c#4,f#4,d#5,d#6]@2, b4 ~ b4 ~ [g#2,g#3]@2 ~@18, ~@5 b3@2 f5 ~ g#5 ~@7 [f5,f6]@2 ~@5", // G#5 F# C# D#m7 F# F D#m7 G# …
  CE: "[c#5,c#6]@2 [a#3,c#4,f#4,b4,b5]@2 [a#4,a#5]@2 f#4 [f#4,f#5]@2 [b2,f#3,b3,f#4,b4,f#5,b5,d6,f#6]@3 ~ [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 ~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 ~, ~@3 [a#3,c#4,g#4,g#5] ~@8", // C# F# A# F# Bm G#m7b5 F# G#m7b5 …
  CF: "[f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~ [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 [f#2,f#3,a#4,c#5,a#5,c#6,f#6]@2 [c#5,c#6]@2 [a#3,c#4,f#4,d#5,d#6]@2 [f5,f6]@2 [a#3,c#4,f#4,f#5,f#6]@2 ~ [a#3,c#4,f#4,d#5,d#6]@2 [c#5,c#6]@2 [a#3,c#4,f#4,b4,b5]@2, ~@17 [f5,f6]@2 ~@5", // F# G#m7b5 F# C# D#m7 F F# D#m7 …
  CG: "[a#4,a#5]@2 [a#3,c#4,f#4,g#4,g#5]@2 [f#4,f#5]@2 [b2,f#3,b3,f#4,b4,f#5,b5,d6,f#6]@3 [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 ~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~ [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~", // A# F# Bm G#m7b5 F# G#m7b5 F#
  CH: "[b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 ~ [f#2,f#3,a#4,c#5,a#5,c#6,f#6]@2 ~ [a#3,c#4,f#4,d#5,d#6]@2 [f5,f6]@2 [a#3,c#4,f#4,f#5,f#6]@2 [f5,f6]@2 [a#3,c#4,f#4,d#5,d#6]@2 ~ [a#3,c#4,f#4,b4,b5]@2 [a#4,a#5]@2 [a#3,c#4,f#4,g#4,g#5]@2, ~@6 [c#5,c#6]@2 ~@9 [c#5,c#6]@2 ~@5", // G#m7b5 F# D#m7 F F# F D#m7 F# …
  CI: "[f#4,f#5]@2 [b2,f#3,b3,f#4,b4,f#5,b5,d6,f#6]@3 ~ [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~ [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 ~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 ~", // F# Bm G#m7b5 F# G#m7b5 F# G#m7b5
  CJ: "[f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~ [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~ [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 ~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 [b2,g#3,b3,g#4,d5,g#5,d6,f#6]@3 ~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@2", // F# G#m7b5 F# G#m7b5 F# G#m7b5 F#
  CK: "~@2 [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 ~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@3 [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@4", // F#
  CL: "[~ [f#2,f#3,a#3,a#4,c#5,a#5,c#6,f#6]@5 [f#2,f#3] f#3@2 f#2 ~ f#2 ~@2 f#2 f#3@2 f#2 ~ f#2 ~@2 f#2 f#3@2 f#2 f#3 ~@21, ~@3 f#4@10 ~@11, ~@10 f#3@3 f#3@2 ~@3 f#3@3 f#3@2 ~@25]/2", // F#
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft = note("<~@2 A@4 ~ B C D E A@3 ~@25 F@4 ~ G H I J@4 K L@2 M@2 L@2 M@2 L ~@44>".pickRestart({
  A: "[f#3,a3,c#4]@2 ~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4]@2 ~@2 [f#3,a3,c#4]@2 ~@2 [f#3,b3,d4]@2 ~@2 [f#3,b3,d4]@2 ~@2", // F#m Bm
  B: "~@10 [b2,b3,d4,f#4] ~", // Bm
  C: "[f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2", // F#m
  D: "[f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3]@2 ~@2", // F#m
  E: "[f#3,a3,c#4]@2 ~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [a3,c#4]@2 ~@2 [f#3,c#4]@2 ~@2 [f#3,b3]@2 ~@2 [f#3,b3,d4]@2 ~@2", // F#m A F#5 B5 Bm
  F: "[f#3,a3,c#4]@2 ~@2 [f#3,a3] ~ [f#3,a3] ~ [f#3,a3]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,b3,d4]@2 ~@2 [f#3,b3,d4]@2 ~@2, ~@3 c#4 ~@2 c#4@6", // F#m Bm
  G: "~@10 [b2,b3,d4] ~, ~@5 f#4", // Bm
  H: "[f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,f#4] ~ [f#3,a3,f#4] ~ [f#3,a3]@2 ~@2 [c#4,f#4]@4 [c#4,f#4]@4 [c#4,f#4]@4, ~@2 c#3@2 ~@2 [f#3,a3] ~ [f#3,a3] ~ [f#3,a3] ~, ~@2 c#4!2 ~@8", // F#m F#5 F#m
  I: "[f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,f#4] ~ [f#3,a3,f#4] ~ [f#3,a3]@2 ~@2 [c#4,f#4]@4 [f#3,a3]@2 ~@2 [f#3,a3]@2 ~@2, ~@2 c#3@2 ~@2 [f#3,a3] ~@5, ~@2 c#4!2 ~@4 [c#4,f#4]@4", // F#m F#5 F#m F#5
  J: "[f#3,a3,c#4]@2 ~@2 [f#3,a3] ~ [f#3,a3] ~ [f#3,a3]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,b3,d4]@2 ~@2 [f#3,b3,d4]@2 ~@2, ~ c#3 ~@4, ~@2 c#4!2 ~@2 c#4@6", // F#m Bm
  K: "[f#3,a#3,c#4]@4 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 c#3@2 ~@2 c#4@2 ~@2", // F#
  L: "f#3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 c#3@2 ~@2 c#4@2 ~@2",
  M: "f3@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2 c#4@2 ~@2 c#3@2 ~@2 c#4@2 ~@2",
})).s("gm_piano").gain(0.2)

// drums · tambourine
const tambourine = s("tb").struct("<~@16 A@21 ~@14 B@10 C@24 D ~ D ~ E F G H E F I J K L M N O@2 P ~>".pickRestart({
  A: "x ~@3 x!2 ~ x!2 ~@3 x ~@3 x ~@3 x ~@3", B: "~ x ~", C: "~@2 x!2 ~ x", D: "x",
  E: "x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~", F: "~@2 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x!2 ~ x ~@3",
  G: "x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~@6", H: "~@17 x ~@2 x ~ x ~", I: "x ~ x ~ x ~@2 x ~ x ~@14",
  J: "~@9 x ~@3 x ~@3 x ~@2 x ~@3", K: "x ~@3 x ~@2 x ~@16", L: "~@6 x ~@2 x ~@3 x ~@3 x ~@2 x ~@3", M: "x!2 ~@4",
  N: "~@2 x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~", O: "x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~",
  P: "~ x ~ x ~@2 x!6 ~@12",
})).gain(0.15)

// drums · rim
const rim = s("rim").struct("<A@16 ~@21 A@14 B@10 C@24 D ~ D ~@8 E F G H I J K L ~>".pickRestart({
  A: "x ~@3 x!2 ~ x!2 ~@3 x ~@3 x ~@3 x ~@3", B: "x ~ x", C: "x ~@3 x!2 ~ x!2 ~@7 x ~@7", D: "x",
  E: "~@9 x ~@3 x ~@3 x ~@2 x ~@3", F: "x ~@3 x ~@2 x ~@16", G: "~@6 x ~@2 x ~@3 x ~@3 x ~@2 x ~@3", H: "x!2 ~@4",
  I: "~@2 x ~@3 x!4 ~@3 x!3 ~ x ~@2 x ~ x!2", J: "x ~@3 x!4 ~@3 x!2 ~ x!2 ~@2 x ~ x!3 ~",
  K: "x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~", L: "~ x ~ x ~@2 x!6 ~@12",
})).gain(0.25)

stack(piano, piano_soft, tambourine, rim)

More by Hinci