Strudelify

Binks' Waltz

Scott Joplin

KeyB♭ majorTempo100 bpm
0:00/0:00
// Binks' Waltz — Scott Joplin
// 100 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 101 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A@3 B C D@2 E@8 F G H@2 I@8 J@3 K L M@5 N ~ O@2 P@3 Q@6 R@4 S@3 T@7 U@3 V@5 W X@2 Y@5 Z@2 AA AB@3 AC@2 AD@6 AE@3 AF@4
>`.pickRestart({
  A: "[~@28 [d3,d4]@3 f3@3 g4@3 [bb2,bb3]@3 ~@5 [d3,d4]@3 [f3,f4]@2 g4@3 bb4@2 ~ bb4@3 bb4@3 bb4@4 bb4@2 ~ bb4@7 ~@20, ~@22 d4@6 ~@3 f4@7 ~@5 [db3,db4]@5 ~@5 [g2,g3,d4,g4]@13 ~@30, ~@25 [db3,db4]@6 ~@9 [d3,d4]@5 ~@21 [c4,eb4]@8 ~@22]/3", // D Bb D F Db G5 Db D …
  B: "~@4 bb4@2 ~ d5@3 ~@3 f5@2 ~@3 f4@3 bb2@2 g3 ~@5 db4@3, ~@10 d5@11 g4@11, ~@15 f5@6 ~@5 bb3@6",
  C: "f4@5 ~ [bb2,bb4] ~@2 d5@2 ~@3 f5@2 ~@3 f4@3 bb2@2 g3 ~@4 db4@3, ~@11 d5@11 g4@10, ~@11 bb3@5 f5@5 ~@11, ~@17 bb3@5 ~@5 bb3@5", // Bb
  D: "[f4@6 ~ [g5,eb6,g6]@6 eb4@5 ~@3 [gb5,gb6]@3 [f5,eb6]@6 ~ [eb4,f5]@6 [eb4,db5,f5,db6]@6 ~ bb1 ~@5 [bb4,bb5]@7 [bb4,g5]@7, d4 ~@6 f2@2 ~@4 [g5,eb6,g6]@11 f6@2 ~@4 c6@3 ~@10 d5@7 ~@14, ~@19 [f3,eb4]@5 f2 ~@6 c5@12 d6@2 ~@19]/2", // Cm Gb F7 Ebsus2 Db Bb Eb Cm …
  E: "[~@16 f4@5 ~ bb2 ~@2 d5@2 ~@3 f5@3 ~@2 f4@3 bb2@2 g3 ~@4 db4@3 f4@5 bb2 ~ d5@2 ~@3 f5@2 ~@3 d5@2 b2@3 ~@5 b3@2 [a4,c5]@6 ~ e5 ~@5 [bb3,c4]@4 ~@3 [db5,db6]@3 [g5,bb5]@7 ~@34 f2@9 g4@13 ~@11 [bb1,bb2] ~@2 d5@3 ~@2 f5@2 ~@3 f4@3 bb2@2 g3 ~@4 db4@3 f4@5 ~ bb2 ~ d5@2 ~@3 f5@2 ~@3 f4@2 bb2@2 g3 ~@4 db4@2 ~ f4@2 ~@5 [g5,eb6,g6]@6 eb4@5 ~@3 [gb5,gb6]@2 [f2,c6,eb6,f6] ~@2, ~ [bb4,f5]@20 bb4@2 ~@4 d5@11 g4@10 ~@5 bb4@14 [ab4,d5]@10 f4@2 ~@4 [d5,bb5,d6]@6 [d5,e5,bb5,d6]@11 c6@17 a6@6 ~@57 bb3@5 f5@6 ~@19 d5@10 g4@10 ~@18 eb4@4 ~@4, ~@33 f5@5 ~@5 bb3@5 d4@2 ~@8 [bb3,d4,d5]@5 [bb3,d4]@6 ~ f3@7 ~@6 c2@2 ~@10 bb3@5 c2 ~@19 [a5,f6]@30 ~@24 bb4@16 g4@10 ~@5 bb4@2 ~@8 f5@5 ~@23 [g5,eb6,g6]@10 f5@2 ~, ~@62 f5@7 ~@3 ab3@5 c4 ~@11 e4@5 [c4,e4]@6 c5@2 ~@5 [bb5,g6]@16 ~@10 a2@17 ~@24 d4@6 d5@11 ~@4 bb3@5 d4@2 ~@8 [bb3,d4]@5 ~ bb3@5 ~@4 bb3@5 d4 ~@6 f2 ~@11 f3@4 ~@3]/8", // Am Bbsus2 Db Gm Bb Cm Gb F7 …
  F: "~@3 [f3,eb4]@5 [eb4,db5,db6]@6 ~ bb1@2 ~@12 a4@3, ~@3 [c5,f5,c6]@11 ~@7 f5@11, ~@3 db5, ~@26 d5@5 ~, ~@27 bb3@5", // F7 Eb7 F5
  G: "~@15 f4@7 ~@4 bb4@4 [bb3,bb4]@2, bb4@21 ~ gb4@10", // Bb
  H: "[c5@2 ~@3 gb4@3 d2 ~@5 [bb3,d4]@5 ~ bb3@5 eb3@2 ~ bb4@2 ~@3 c5@2 ~@3 gb4@2 ~ [d2,d3,f4]@6 [d3,ab4,bb4,f5]@6 [eb3,g4,bb4,eb5]@6 [f4,bb4,d5]@5, ~@3 c5@4 ~ f4@11 [f3,d4,f4]@5 ~ gb4@11 gb3@5 ~@6 d2@2 ~@4 eb2@2 ~@4 f2 ~@4, ~@25 eb2 ~@4 bb4@10 ~@24, ~@30 eb4@5 [eb4,c5]@5 ~@24, ~@31 bb3@9 ~@19 f3@2 ~@3]/2", // Bb Dm Bb7 Eb Bb Dm Cm
  I: "[~ [bb3,d4]@5 [f3,bb3,d4]@3 d5@2 [eb4,a4,c5]@6 ~@9 d5@3 bb2@3 ~@2 f3@14 ~@7 [d5,d6]@7 [d5,d6]@7 g1 g2 ~@6 [bb3,d4]@5 [g3,bb3,d4]@5 ~ c2 ~@5 [a3,c4,eb4]@5 [g3,c4,eb4]@5 [d2,d3,d5,d6] ~@9 [gb3,c4,d4,d5,gb5,d6]@4 ~@2 [g1,d5,g5,d6] ~@9 [bb3,d4,g4,d5,g5,bb5,d6]@6 ~ d6@5 ~@5 [bb1,bb2]@4 ~ [a5,a6]@2 ~@4 [a3,d4]@5 [a3,d4,gb4]@4 ~ [a1,a2,a5,db6,a6] ~@12 [e5,e6]@2 [d2,d3] ~@9 bb1@2 [a1,bb1,g2,a2]@3 d2 d6@6 [bb3,d4]@5 [bb3,d4,g4]@5 [c2,c6,g6] ~@5 [c4,eb4]@6 [c4,eb4,g4]@6 ~ [d5,gb5,d6]@4 ~@7 [a3,c4,d4,gb4,d5,gb5,d6]@5 ~ [g1,g2,d5,d6] ~ [eb5,eb6]@3, ~ bb4@10 f2 ~@5 eb4@12 [bb3,bb4]@40 [bb5,bb6]@18 ~@7 [eb5,eb6]@10 ~@3 [eb5,eb6]@5 [eb5,eb6]@6 ~@2 bb5@5 g3@11 ~@6 [g3,bb3,d4,g5,d6,g6]@9 ~@7 [gb3,gb5,d6,gb6]@10 ~@5 [db4,e4]@3 [g5,g6]@7 [d5,gb5,d6]@7 [c2,c3]@2 bb2@6 ~ g2@2 ~@4 [g3,g5,d6,g6]@10 eb6@2 ~@39, ~@23 c4@6 d4@19 bb2@21 ~@7 [g5,g6]@11 ~ [g5,g6]@16 gb5@2 ~@3 [c4,d4,d5,gb5,d6]@5 ~@6 g2@16 ~ g1 ~@14 [a1,a2] ~@21 g3@4 [g3,a3,db4,e4,gb5,gb6]@5 ~@2 eb3@13 ~ [bb5,bb6]@15 ~ g5@6 ~@17 [eb5,eb6]@5 [eb5,eb6]@7 ~ [g5,bb5]@5, ~@122 [eb5,eb6]@5 [eb5,eb6]@8 ~@2 [bb5,bb6]@15 d6@5 ~@14 [b5,b6]@12 ~@5 [d2,d3]@11 g1 ~@33 d2@3 ~@4 [c4,d4,d5,gb5,d6]@5 ~@11, ~@125 [bb3,d4,d5,g5,bb5,d6]@5 ~@43 [a5,a6]@9 ~@4 eb2@13 ~@22 [g3,eb5,g5,c6,eb6]@12 ~@7 gb3@10 ~@6]/8", // Bb Adim D Bb Gm Adim Cm D …
  J: "[~@2 [eb5,eb6]@2 ~ [d5,g5,bb5,d6]@5 ~ [c2,g5] ~@10 [eb4,g4]@5 ~ [d2,d5] ~@5 bb3@6 [bb3,d4,g4]@5 d2@2 d6 ~@10 d3@2 [eb3,a4,a5]@2 [g2,g4,g5] ~@12 g5@3 [g2,d3]@2 ~@4 [bb3,d4]@4 ~ [bb3,d4]@5 [c2,c3,eb6,g6] ~, [g3,bb3,d4,d5,g5,bb5,d6]@5 bb3@2 ~@3 eb5@2 ~@4 [g5,c6,g6]@11 ~ d3@18 ~@6 d4@5 [gb3,c4,bb4,bb5]@5 g3@5 [bb3,d4]@5 [bb3,d4,g4,d5,d6]@2 g6@3 ~ [bb5,bb6]@15 ~@3, ~@5 [d4,g4] ~@4 eb6@6 ~ eb6@10 ~ d6@6 ~@16 [eb5,eb6]@12 ~@7 [c5,c6]@8 ~@6 [g5,d6,g6]@10 ~ [g5,c6]@2, ~@11 c6@2 ~@21 [g5,d6,g6]@12 ~ d5@5 [gb3,c4]@3 [c5,c6]@7 ~@3 [a4,a5]@13 ~@6 g3@10 ~@2, ~@53 [d5,d6]@9 ~@5 [bb4,bb5]@10 ~@11 g4@5 ~@3]/3", // Eb Gm C5 Eb D Gm Ebdim G …
  K: "~@3 [c4,eb4]@5 ~ a3@5 ~ [d5,gb5,d6]@4 ~@5 [eb5,eb6]@2 [a3,c4,d4,gb4] ~@4 [g5,d6], ~@3 [g3,eb5,g5,c6,eb6]@11 d3@12 ~@6, ~@8 [c4,eb4,g4]@6 d2@2 ~@5 [gb3,c4,d4,d5,gb5,d6]@5 ~@6, ~@15 c5 ~@3 [eb5,eb6]@5 ~@2 [d5,gb5,d6]@5 ~", // Cm D Eb D7 G5 Cm D7 Eb …
  L: "[g1,d5] ~@6 [eb5,eb6]@2 ~ [g3,bb3,d4,d5,g5] ~@5 [bb5,bb6]@3 ~@3 [g3,d4] ~@4 [bb3,d4,g4]@5, bb5@2 [eb5,eb6]@5 ~@3 [bb5,d6]@6 d6@6 [g5,d6,g6]@10, ~@5 [d3,g3,bb3,d4,d5,g5,bb5,d6]@5 ~@6 [g1,g2] ~@5 bb3@5 ~@5", // G5 Eb Gm Bb G5 Gm Eb Bb …
  M: "[~ [a2,a6]@2 ~@4 [a3,d4]@5 ~@4 a5@2 ~ [a1,a2,a5,db6,a6] ~@13 [e5,e6]@2 [d2,d3] ~@12 a1@3 ~ d6@6 [bb3,d4]@5 [bb3,d4,g4]@4 ~ [c2,c3,c6,g6] ~@5 [c4,eb4]@5 [c4,eb4,g4]@5 ~@2 [d5,d6] ~@9 [eb5,eb6]@2 gb4 [d5,gb5,d6]@6 ~ g2@2 ~@7 [eb5,eb6]@2 ~ [d5,g5,bb5]@5 [g5,c6,eb6]@6 ~@6 [c4,eb4]@5 ~@2 [d2,g5] ~@13 [bb3,g4]@4, ~ a5@15 ~@6 [b5,b6]@13 ~@8 [c2,c3]@8 ~ g1 ~@32 d3@3 ~@6 d5@5 ~@7 [d5,g5,bb5,d6]@7 [g3,d5,g5,bb5,d6]@4 ~ [g3,d4] ~@10 [g3,g5,c6,eb6,g6]@12 ~@19, ~ d6@6 ~@5 gb4@5 ~@8 [a5,a6]@10 ~@5 [d2,d3]@5 [bb1,bb2]@2 a2@3 ~@2 g2@2 ~@4 [g3,g5,d6,g6]@9 ~@7 [g3,eb5,g5,c6,eb6]@12 ~@7 [d4,gb5,d6]@5 ~@14 [bb3,d4]@5 ~ bb3@2 ~@22 d6@7 g6@11, ~ a1 ~@5 [gb3,gb5,d6,gb6]@10 ~@8 [g3,db4,e4]@5 [g3,a3,db4,e4,gb5,gb6]@5 ~@3 [eb2,eb3]@12 ~@34 d2@4 ~@17 g1@2 ~@16 c2 ~@36, ~@13 [a3,d4]@5 ~@10 g5@7 [d5,gb5,d6]@15 ~@2 [bb5,bb6]@15 ~ [g5,eb6]@2 ~@16 gb5@5 [eb5,eb6]@5 ~@14 [eb5,eb6]@5 ~@2 d6@5 ~ eb5@18 ~ [d5,bb5]@18]/5", // A D5 A E D Bb Gm C5 …
  N: "~@3 d5 ~@14 [a4,a5]@6 ~@8, ~@3 d2@7 d3@15 ~@7, ~@3 [gb5,d6]@4 eb5@18 ~@7, ~@6 eb6@6 [c5,c6]@3 [c4,bb4,bb5]@10 ~@7, ~@9 [d5,gb5,d6]@15 ~@8", // A D C C7 D
  O: "[~@5 d5@2 ~@3 f5@3 ~@6 bb2@2 g3 ~@4 db4@3 f4@5 bb2 ~@2 d5@2 ~@3 f5@2 ~@2 f4@3 bb2@2 g3 ~@4 db4@2 ~ d4 ~@4, ~ bb4@17 g4@11 ~@5 bb4@15 g4@10 ~@5, ~@7 bb3@6 f5@7 ~@44, ~@8 d5@12 ~@19 d5@10 ~@9 f4@6, ~@16 f4@4 ~@3 bb3@6 d4@2 ~@13 [bb3,f5]@5 ~@5 bb3@5 ~@5]/2", // Bb5
  P: "[f2@2 [g5,a5,g6]@6 ~@9 eb6@2 ~ f5@6 eb4@5 [a3,eb4,f4,db5,eb5,db6]@5 ~ [d5,f5]@7 eb5@7 bb4@8 ~@13 f4@6 [bb2,bb4]@2 ~ d5@2 d5 ~ f5@2 ~ [bb3,d4,f5] ~ f4@3 [bb2,g4]@3, ~@2 eb6 ~@5 [eb6,g6]@8 [gb5,gb6]@2 ~@2 f2@2 ~@4 [f3,c5,f5,c6]@11 bb1 ~@58, ~@8 f4@6 eb4@5 ~ [eb3,eb6,f6]@17 [bb2,d6]@2 ~@44 bb3@5 ~@8, ~@9 [g5,a5]@10 ~@25 bb5@3 ~@12 f5@19 ~@18]/3", // Gsus2 Aaug Dm Bb Eb Gb F5 Ebsus2 …
  Q: "[~@4 db4@3 f4@5 [bb2,bb4] ~@2 d5@2 ~@3 f5@2 ~@3 d5@2 ~@8 b3@3 c5@6 [d5,e5,bb5,d6]@6 [c4,e4]@5 ~@2 [db5,db6]@2 ~ bb5@6 ~ bb3@6 ~@3 a5@3 ~@6 c3@8 ~@8 f2@10 eb4@26 ~ [d4,bb4]@2 ~ d5@3 ~@2 f5@3 ~@2 f4@3 bb2@2 g3 ~@4 db4@3 f4@5 bb4@2 d5@2 ~@3 f5@2 ~@3 f4@2 bb2@3 ~@2 bb3@3 db4, g3@7 ~@15 [bb3,f5]@6 ~@2 f3@8 ~@6 c2 ~@15 c2 ~@5 g6@9 a6 c6@5 ~@68 f5@5 ~@20 d5@10 ~@8, ~@2 bb3@5 d4@2 ~@8 d5@8 ~@2 [ab4,d5]@11 a4@2 ~@10 [d5,e5,bb5,d6]@10 [c5,g5]@19 [f3,a5,f6]@34 ~@46 bb3@5 d4@2 ~@8 bb3@5 [bb3,d4,f5]@5 ~@2 g3@6, ~@33 ab3@5 c4 ~@16 [g3,bb3,c4,e4]@5 c6@13 [bb3,e4,g4]@8 ~@12 a2@19 ~@57 bb2 ~@22, ~@66 e4 bb5@14 ~@30 g4@15 ~@18 d5@10 g4@10 ~@19 g4@9]/6", // Bb Em7b5 C Db Gm Bb5 Abdim Em7b5 …
  R: "[~ f4@2 ~@4 [g5,a5,eb6,g6]@6 ~ a3@4 ~@3 [gb5,gb6]@2 [f2,c6,f6] ~@5 [a3,eb4]@5 [a3,eb4,f4,db5,eb5,db6]@5 ~ f5@7 ~@12 c5 ~@6 d4@9 ~@6 eb2@4 ~@4 bb4@3 ~@3 c5@2 ~@3 gb4@3 f4@12 ~ bb3@4 ~@2 [eb3,gb4]@2 ~ [bb4,bb5]@3, ~ d4 ~@5 c3@2 ~@4 [g5,a5,eb6,g6]@9 ~ f5@6 ~@11 d5@12 d4 d5@5 bb4@2 bb4@24 ~ gb4@15 ~@28, ~@7 f2 ~@5 eb4@5 f4@4 ~ eb6@2 ~@15 d6@20 ~@32 [bb3,eb4]@5 [eb4,c5]@6 ~@12 [d4,f4,f5]@6 ~@7, ~@14 f3@9 ~@6 [f3,c5,f5,c6]@10 ~ bb1@2 ~@5 d4@2 db5@6 a4@5 ~@15 f4@9 ~ eb3@18 ~@17 eb2@4 ~@4, ~@19 [a3,c4,eb4]@4 ~@24 f5@13 ~@32 bb4@10 ~@20 gb5@6]/4", // Am7b5 Gb F5 Adim Aaug Ebm Bb Am7b5 …
  S: "[~@3 [c5,c6]@2 ~@3 [gb4,gb5]@3 [f4,f5]@6 [d3,ab4,bb4,f5]@5 ~ eb3@5 ~ f2 ~@4 bb3@5 ~@3 [f4,bb4,d5]@3 [eb4,c5]@6 ~@11 bb2@5 ~ f3@8 ~@14 [bb3,bb4]@6, [bb4,bb5]@11 ~@11 [g4,bb4,eb5]@6 d5@12 [f3,bb3]@5 f2 ~@16 [bb3,d4,bb4]@29 ~@5, [gb3,bb3,eb4]@5 [eb4,c5,c6]@6 ~@6 d2@2 ~@4 eb2@2 ~@3 [f4,bb4]@6 [f4,bb4]@8 ~@18 d5@5 ~@31, ~@39 d4@5 ~@7 [eb4,a4]@13 ~@32]/3", // C Gb F Bb7 Bb Cm Bb Eb …
  T: "[~@5 [eb2,bb2]@3 eb3@2 ~@4 [bb3,eb4]@6 ~ eb4@5 ~ f4@4 ~@20 eb4@6 [c4,eb4,g4]@6 f1@2 ~@11 ab4@7 ~ bb2@2 ~@4 [ab3,bb3]@5 [ab3,bb3,d4,f4,bb4,d5,bb5]@6 [bb1,bb2]@2 ~@4 [ab3,bb3]@5 ~ [f4,bb4,d5,f5]@7 eb2@3 ~@3 eb4@7 ~@8 g5@22 ~@5 bb3@4 eb4@2 ~ [bb3,eb4,g4,bb4,eb5,g5]@7 f4@2 ~@11 [d5,d6]@3 c3@2 ~@4 [c4,eb4]@5 ~ [eb4,g4]@8 ~ ab2@5, ~ [eb4,eb5]@7 [g4,eb5,g5]@12 [bb3,g4,bb4,eb5,g5,bb5]@6 ~ [d3,f5]@11 [f4,c5,c6] [ab3,bb3,d4,ab5]@2 [d5,d6]@3 c3@4 ~@3 g3@12 ~@6 f4@7 ~@7 bb1@3 ~@3 d4@6 ~@11 d4@5 ~ [ab3,bb3,d4]@8 ~@48 g3@13 ~ [d2,d3,f5]@10 [d4,f4] [ab3,bb3,c5,c6]@5 ~@6 g3@15 ~@5, ~@14 g3@12 d2@2 ~@3 [g4,g5]@12 c2@4 ~@23 c4@14 ~@5 f3@11 ~@6 f3@13 ~@49 eb4@3 ~@3 bb5@7 ~@7 [f3,ab4,ab5]@10 c2 ~@20 ab1@2 ~@3, ~@27 bb4@6 [ab3,bb3,f4] [d4,ab5]@2 [bb4,bb5]@9 [eb5,g5,eb6]@18 [c5,f5,ab5]@21 d5@11 ~@6 d5@12 ~@7 [c5,eb5,gb5]@21 ~@22 [g4,eb5,g5]@12 ~@10 [g4,g5]@13 ~@11 c4@9 ~@6, ~@33 ab4@12 ~@18 ab4@13 ~@8 [ab4,ab5]@17 [g4,g5]@19 gb4@13 ~@7 bb4@35 ~@7 bb4@6 [ab3,bb3,d4]@2 [bb4,bb5]@8 [eb5,g5,eb6]@20 [eb5,ab5,c6]@6]/7", // Eb5 Cm Absus2 Bb7 Bb Absus2 Bb Eb …
  U: "[~@2 [c2,c3,ab4,eb5,ab5]@6 ~ [eb5,gb5]@8 [bb1,bb2]@2 ~@5 eb4@8 ~@3 c6@5 ~@8 [f4,bb4]@6 ~@12 bb2@5 g2@7 ~@6 bb2@6 [bb1,bb2,eb5,eb6]@6, ~@8 a5@8 ~ [bb4,g5,bb5]@23 ab4@14 [ab3,bb3,d4,f4]@2 [bb4,bb5] d5@3 eb3@36, ~@16 bb3@4 bb1 ab5@9 eb5@15 ~@3, ~@33 g4@8 bb2@19 g4@18 eb2@18, ~@34 c5@7 d5@7 f5@16 ~@20 [bb4,bb5]@12]/3", // Ab Ebm Bb Bb5 Eb5 Eb Bb7 Bb
  V: "[~ [eb1,eb2] ~@5 [bb3,eb4]@6 [bb3,eb4,g4,bb5,eb6,g6,bb6]@5 ~@2 f5 ~@13 [d6,d7]@3 c2 c3 ~@4 [c4,eb4]@5 [c4,eb4,g4]@5 ~ f2@2 ~@3 [c4,f4]@5 ~@6 [bb1,bb2] ~@4 d4@3 ~@7 d6 ~ bb2@2 ~@3 [ab3,bb3]@2 ~@9 [gb5,c6] gb6 eb2 ~@4 [c4,eb4]@6 ~@6 [g5,bb5] eb2@3 ~@12 g4@3 ~@9 [c4,bb4]@3 [bb3,c4,eb4,g4,bb4,eb5,g5,bb5]@5 [bb1,f4,bb4,f5] ~, ~ g5@18 ~ bb5@6 [bb3,d4]@3 [bb5,bb6]@2 [bb3,d4,ab4,c6,c7]@6 ~@27 [c4,f4,ab4]@4 d6@7 f3@4 [bb5,d6] [bb3,f4,f6,bb6] [ab3,bb5]@6 d6@7 bb3@3 [f4,f5,bb5]@4 gb5@2 ~@2 [eb3,gb5,c6]@16 [eb6,g6]@2 eb6@10 bb5@8 [g4,eb5,g5]@8 bb3@4 ~@7, ~ [eb6,g6]@12 ~@5 d2@4 ~@2 [g5,g6]@13 [eb6,g6,eb7]@16 [ab5,c6,f6,ab6]@16 ab6@15 g5@2 ~ g5@15 [eb6,gb6]@2 eb6@13 g5 [bb5,eb6] g6 [g5,bb5]@2 ~@8 [bb3,eb4,g5]@3 g4@2 c4 eb6@5 eb2@2 ~@4 eb4@6 ~@7, ~@7 g3@12 ~ [d3,f6]@17 ~@17 c3 ~@12 ab5@2 f6@6 [ab3,bb3]@3 d4@8 bb1@2 ~@4 [d4,f4]@3 [ab3,f5,bb5] [d6,f6]@8 ~@6 gb3@13 [bb2,g6]@19 bb2@16 bb2@2, ~@26 [ab3,f4,ab5,ab6]@11 ~@6 g3@11 ~@5 ab3@11 ab5@16 g6@18 ~@12 [a3,c4,eb4,gb4]@7 ~@4 g3@15 ~@2 g3@14 ~@2]/5", // Eb Eb5 Eb D Cm F5 Bb Absus2 …
  W: "~@11 [d5,d6]@3 c3@2 ~@3 [c4,eb4]@6 [c4,eb4,g4]@6 c6, ~ [g4,g5]@8 [ab3,bb3,d4]@5 ~@5 g3@12 ~, ~@4 [f3,ab4,ab5]@10 c2 ~@17, ~@4 [ab3,bb3,d4]@4 [f4,c5,c6]@5 ~@19, ~@6 [bb4,bb5]@7 ~ [eb5,g5,c6,eb6]@17 ~", // D Cm G Bb7 Fm Bb7 F5 Bb …
  X: "[[ab1,ab2,f5] ~@5 [c2,eb5]@5 ~ [b2,a4,eb5]@6 [bb1,bb2] ~@5 [bb3,eb4]@7 [bb3,eb4,c5,g5,c6]@7 [ab4,c5,d5,ab5]@7 ~@13 [bb4,d5,bb5]@6, c5@5 [ab4,ab5]@6 [db5,gb5]@6 ~ [bb4,eb5,bb5]@20 bb2@2 ~@5 f5@19, ab5@2 ~@3 [c3,c5]@3 ~@3 a5@3 ~@4 g5@13 ~@7 bb1 ~@6 d5@13 ~@6, ~@55 f4@9]/2", // Db Cm B7 Bb Eb5 Cm7 Dm7b5 Bb …
  Y: "[~@7 bb2@7 ~@36 d5@3 ~@2 f5@2 ~@5 bb2@3 g3 ~@4 db4@3 f4@5 bb4@2 ~ d5@2 d5 ~@2 f5@2 ~@3 f4@3 bb2@2 ~@3 bb3@5 ~ f4@7 ~ [g5,a5,eb6,g6]@7 ~@18 a3@4 ~ [f3,a3,eb4]@5 [d5,f5,d6]@6 ~ g3@2 ~@3, [g4,bb4,eb5]@38 f4@19 [bb3,f5]@5 g4@10 ~@22 g4@11 ~@15 a3@11 f5 f2@5 [f3,eb4,c5,f5,c6]@5 [db5,eb5,db6]@6 ~@6 [bb4,eb5,bb5]@6, ~@43 bb2@17 f4@4 ~@4 bb3@5 d4@2 ~@3 bb2 ~@17 g3@8 ~@9 f2@2 ~@10 eb4@6 [eb3,eb6,f6]@17 [bb1,bb2]@2 ~@4 g2@2 ~@4, ~@46 bb4@17 ~@57 eb6@8 [gb5,gb6]@20 ~@12, ~@53 d5@11 ~@24 f5@6 ~@26 [a5,g6]@28 ~@12]/5", // Am7b5 F7 Dm Eb Bb5 F7 Dbsus2 Eb5 …
  Z: "[~@2 [g4,bb4,g5]@7 ~@23 [bb1,bb4]@3 ~ d5@2 ~@3 f5@3 ~@2 f4@3 [bb1,bb2] ~@7 db4@2 f4@5, ~@9 f5@23 ~@6 [d4,d5]@10 ~@4 g3@7 ~@5, ~@24 f4@22 ~@3 g4@11 ~@4, ~@38 bb3@5 ~ f5@4 ~@6 bb3@5 d4 ~@4]/2", // Gm Bb D
  AA: "~ [bb1,bb2] ~ d5@2 ~@3 f5@2 ~@3 d5@3 b2@2 ~@5 b3@3 c5@6, ~ bb4@2 ~@2 f3@11 [ab4,d5]@10 a4@2 ~@4, ~@6 [bb3,d5]@5 [bb3,d4,f4]@7 f3@8 ~@6, ~@10 f5@7 ~@4 ab3@5 c4 ~@5", // Bb Abdim Bb
  AB: "[[d5,e5,g5,bb5,d6]@5 ~ e4@4 ~@3 [db5,db6]@2 ~ [c5,g5]@2 ~@14 a5@4 f2@5 c3@7 a2@7 f2@13 [bb3,db4,g4]@18 ~@10, c2 ~@4 [e5,bb5,d6]@10 ~ c6@12 [bb3,g4] e4@2 [c6,a6]@5 [f5,a5,f6]@19 ~@41, ~@5 bb3@5 g4@5 ~ bb5@5 ~ [c4,g5,bb5]@14 f3@13 ~@47, ~@6 [g3,d5,g5]@10 c2 ~@4 bb3 e4 g6@14 ~@59, ~@11 [bb3,c4,e4]@5 ~@5 g3@16 ~@59]/3", // Em7b5 Db C5 Gdim Em7b5 Eb F C7 …
  AC: "[~@5 bb2@2 ~ d5@3 ~@2 f5@3 ~@2 f4@2 bb2@3 ~@5 db4@2 ~ d4 ~@4 [bb3,bb4]@2 d5@3 ~@2 f5@2 ~@13 db4@2 ~ [d4,f4] ~@2, ~@4 bb4@16 g4@10 f4@7 ~@4 d5@9 bb2@4 g3@7 ~@3, ~@4 d4@6 ~ d5@11 ~@3 bb3@5 ~@16 [f3,bb3,d4,f5]@5 g4@10 ~@3, ~@11 bb3@5 [bb3,f5]@6 ~ g3@8 ~@5 bb2 ~@11 f4@4 ~@4 bb3@4 ~@4]/2", // Bb Dm Bb Bb5
  AD: "[~@3 [g5,a5,c6,eb6,g6]@5 [eb4,f4]@5 ~@3 [gb5,gb6]@2 ~ [f2,eb3,c6,f6] ~@4 [a3,eb4]@5 ~ [a3,eb4]@6 [bb1,d6]@2 ~@12 a4@3 ~@14 f4@5 ~@6 bb4@4 ~@3 c5@3 ~@3 gb4@3 d2@2 ~@5 f3@5 ~ f3@4 ~ eb3@2 ~@16 [gb4,gb5]@4 [d2,d3,f4,f5]@6 [d3,ab4,bb4,f5]@6 [eb3,g4,bb4,eb5]@5 ~ [f3,bb4]@6 [bb3,d4]@6 ~@4 [f4,bb4,d5]@3 ~ [f1,f2]@2 ~@5 c4@5 ~@5 d5@3, ~@3 [f2,c3] ~@4 [a3,g5,a5,c6,eb6,g6]@10 ~@6 [f3,c5,f5,c6]@11 ~ f5@6 f5@10 ~@30 [bb3,eb4]@6 [eb4,c5]@6 ~@6 [bb3,d4]@6 [bb3,d4,f4,f5]@6 ~@6 eb4@5 c6@3 [bb3,eb4]@8 ~@6 d2@3 ~@3 eb2@2 ~@4 f2 ~@12 [f3,bb3,d4]@7 ~@7 [f3,a3,eb4,a4,c5]@13, ~@13 [eb4,f4,a4]@5 ~ [f5,eb6]@2 ~@8 [db5,eb5,db6]@6 ~ d5@9 db5@8 bb4@21 gb4@17 ~@3 f4@12 ~@6 [gb4,gb5]@18 ~@22 f4@16 ~@3 [eb4,bb4,c5]@9 ~@6 c4@6, ~@43 f3@10 ~@19 eb2@22 ~@17 eb2@2 ~@6 [gb3,bb3]@5 c5@4 [c5,c6]@7 ~@16 d5@16 ~@25, ~@43 d4@4 d5@5 ~@30 bb4@11 ~@23 [bb4,bb5]@4 [bb4,bb5]@15 ~@23 bb4@10 ~@24]/6", // Am7b5 Ebsus2 Gb F7 Adim Bb Gb Dm …
  AE: "[~ [bb2,f3,d4] ~@3 d5@3 ~@3 [bb4,f5]@3 ~@3 [d5,bb5]@2 ~@3 [f5,d6]@2 ~@3 [bb5,f6]@2 ~@3 [d6,bb6]@3 [d6,bb6]@8 ~@6 [a3,c4,eb4,a4,f5]@2 ~@5 [bb3,d4,bb4,d5,f5,bb5]@16 ~@5 [bb3,d4,f4,bb4,bb5,d6,f6,bb6]@13 ~@6, ~ bb3@18 bb5@5 [f5,d6]@5 f6 bb5@14 ~@52, ~ bb4@10 ~@3 bb4@29 ~@53, ~@8 f4@35 ~@6 f3 ~@46, ~@8 d5@6 f5@5 d5@24 ~@6 eb5@7 ~@40]/3", // Bb Bb5 Gm Dm Bb5 Gm F7 Bb …
  AF: "[~ [bb3,d4,f4,bb4,d5,f5,bb5]@19 ~@8 [eb1,eb2,bb3,eb4,gb4,bb4]@35 [bb0,bb1,bb3,f4]@64 ~, ~@63 [d4,bb4]@12 ~@53]/4", // Bb Ebm Bb5 Gm
})).s("gm_piano").gain(0.56)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  A B C@2 D E@2 F G@2 H@3 I J K L@3 M N O@2 P Q ~@2 R S T U ~ V@2 W@2 X Y@3 Z AA AB@2 AC AD AE@3 AF ~ AG AH AI AJ AK AL
  ~ AM@2 AN@3 ~ AO@2 ~ AP@2 ~ AQ ~@2 AR@4 AS AT@2 AU AV AW AX ~ AY@2 AZ BA BB@5 BC ~@6
>`.pickRestart({
  A: "~@23 d3@5 ~@4, ~@19 [bb2,bb3]@12 ~", B: "~@2 g3@4 ~@12 g3@3 ~@11",
  C: "[~@2 [gb2,gb3]@8 ~@18 f4@7 ~ bb2@2 ~@5 f3@5 [f3,bb3,d4]@5 ~@11, ~@10 [c4,eb4,a4]@25 ~@7 [bb3,d4]@6 ~@16, ~@11 [f2,f3]@25 ~@28]/2", // Gb Bb Adim Bb F
  D: "d4@2 ~@9 [f3,d4]@6 [f3,d4]@5 ~@10", // Dm
  E: "[~@14 [f3,a3]@5 a3@5 ~@7 f3@6 f3@6 ~ bb2@2 ~@4 [g2,g3,eb5]@2 ~@6 [eb2,eb3]@6, ~@31 a3@12 f5@7 ~@7 g4@7]/2", // F Cm Eb
  F: "~@2 d3@2 ~@5 [f3,bb3,d4]@7 [f3,bb3,d4]@6 ~@6 f3@4, ~ f4@15 ~@11 [bb3,d4]@5, ~ d2@2 ~@29", // Bb
  G: "[~ [f3,bb3,d4]@5 ~@20 f3@5 f3@5 f4@9 ~@19]/2", // Bb
  H: "[~@12 bb3@6 ~@3 a5@3 ~ f2@5 c3@24 ~@12 a4@9 bb2@2 ~@7 [f3,d4]@5 [f3,bb3,d4]@5 ~@2, ~@11 g5@16 ~@69, ~@11 [g3,c4,e4]@7 [g3,bb3,c4,e4]@9 ~@27 eb4@22 ~@20, ~@7 c6@2 ~@23, ~@24 [f3,f5]@31 ~@41]/3", // Dm Bb C C7 F
  I: "~@19 f3@4 ~ f3@4 ~@4, ~@23 d4@5 ~@4", J: "~@20 a3@5 a3@4 ~@3, ~@19 f3@5 ~@8",
  K: "~@3 a3@5 ~ [f3,a3]@6 [bb2,bb5,d6]@3 ~@4 [f3,bb3]@5 [f3,d4]@5, ~@15 d5@11 ~@6, ~@21 d4@5 ~@6", // F Bb Bb5 Dm
  L: "[~ d2@2 ~@4 [f3,bb3]@8 [f3,bb3]@6 eb2@3 ~@6 [gb3,eb4]@5 ~ bb3@4 ~@6 f3@5 ~@12 gb3@5 ~@28, ~@7 d4@15 ~@13 [gb3,eb4]@4 ~@57]/3", // Bb5 Ebm
  M: "~ f3@5 ~@12 [f3,a3,c4]@5 ~ f3@7 ~, ~@18 [a4,c5]@13 ~, ~@23 a3@7 ~@2", N: "~@9 d3@7 ~@16",
  O: "[~@13 g3@5 ~@12 g3@5 a3@5 ~@6 gb3@4 ~@14]/2", P: "~@3 eb6 ~@12", Q: "~@21 gb2@2 ~@9",
  R: "~@17 [c4,eb4]@5 c4@4 ~@6, ~@8 g3@5 ~@3", S: "~@2 g3@12 ~@15 d3!2 ~, ~ d4@3 ~@12", T: "~@2 g3@5 ~@9",
  U: "~@16 [c5,c6] ~@15", V: "[~@28 g6@5 f5 ~@14 db6@2 ~@14, ~@25 a3@5 ~@34]/2",
  W: "[~@24 d5@5 [gb3,c4]@5 ~ [a3,c4,d4] ~@12 d3@5 ~@11]/2", // Gbdim D7
  X: "~@2 c4@5 g4@6 ~@8 [bb3,d4]@7 d4@4, ~ eb4@6 ~@7 d3@18, ~@21 [g3,g5,d6]@11", // Bb G5
  Y: "[~@10 c4@5 [gb3,d4]@8 ~@11 eb4@11 ~@2 [f3,a3]@15 ~@10 f3@5 [f3,bb3,d4]@7 ~@12, ~@9 gb3@6 ~@8 g5@40 ~@33, ~@23 g4@23 a4@19 ~@6 d4@6 ~@19, ~@23 [g3,bb3,d4]@11 c4@11 eb4@18 ~ bb2@18 ~@14, ~@24 d5@25 ~@13 bb1@4 ~@30]/3", // D F Bb Gm
  Z: "~@12 d4@5 ~@15, ~@7 [bb3,d4]@5 ~@20, ~@8 f3@9 ~@15", // Bb
  AA: "~@3 eb6@5 ~@6 f4@5 ~@13, ~@4 a3@5 ~@7, ~@4 eb4@3 ~@9, ~@9 c4@10 ~@13",
  AB: "[~@12 [g2,g3]@2 ~@5 [eb2,eb3,g4,g5]@8 ~ [d2,d3]@2 ~@4 [bb3,d4]@6 [bb3,d4]@6 ~@5 [f3,d4]@5 f3 ~@7, ~@12 bb4@7 ~@8 bb4@19 ~@18, ~@27 f4@12 ~@25, ~@17 f3@6 ~@9]/2", // G Eb D Bb Dm
  AC: "~@17 [f3,bb3,d4]@5 [f3,d4]@5 b2@4 ~", AD: "~@18 [g3,bb3]@5 ~@9",
  AE: "[~@3 c4@6 c4@6 f5@32 ~@13 a4@13 ~ bb2@2 ~@4 [bb3,d4]@5 [f3,bb3,d4]@5 ~@6, ~@3 g3@12 f2@5 ~@54 f3 ~@21]/3", // Bb
  AF: "~@14 [f3,d4]@5 f3@5 ~@8", AG: "~@15 f3@6 [f3,bb3]@7 d2@3 ~, ~@2 bb2@5 ~",
  AH: "~@3 [f3,bb3]@8 [f3,bb3,d4]@9 ~@8 gb3@4", AI: "~ [gb3,bb3]@5 ~ [d2,d3]@2 ~@5 [f3,bb3,d4]@6 f3@6 ~@6",
  AJ: "~@5 [gb3,bb3]@6 [d2,d3]@6 ~@12 f3@2 ~", // Gb D
  AK: "~@3 f3@5 ~@5 a4@6 ~ f3@5 [f3,a3,c4]@7, ~@2 d4@5 ~@12 c5@13, ~@19 [a3,c4]@6 ~@7", // F Am
  AL: "~@19 bb2@8 ~@5, ~@11 d3@16 ~@5", AM: "[~@7 d5@2 ~@2 ab5@2 ~@6 c4@6 ~@6 f2@2 ~@12 f4@7 ~@12, ~@19 ab3@7 ~@6]/2",
  AN: "[~@24 eb3@3 ~@4 c4@6 ~ c4@5 ~@8 [bb3,eb4]@7 ~ g4@7 ~ eb3@19 ~@10, ~@31 gb3@12 g4@15 ~ [bb3,eb4]@13 ~@24, ~@37 [a3,eb4,gb4]@7 [eb2,eb3]@3 ~@4 g3@21 ~@24, ~@45 eb5@21 eb2@19 ~@11]/3", // Eb5 Ebdim Eb
  AO: "[~@9 [b1,b2,a4]@8 ~@7 bb3@8 eb4@8 ~@8 [ab3,bb3,d4]@6 ~@6 eb2@4, ~@17 eb5@24 ~@23, ~@24 g3@17 ~@7 f3@16]/2", // B7 Bb7
  AP: "[~@21 f5@14 eb2@2 ~@27]/2", AQ: "~@5 c6@2 ~@3 gb6@17 g5@5, ~ [ab3,d4]@7 ~@24",
  AR: "[~@12 b1@6 ~@13 g4@6 ~@8 [ab3,bb3,d4,f4]@10 ~@9 eb2@2 ~@12 g2@8 eb2@16 ~@8 f3@6 [f3,bb3,d4]@5 ~ f3@6, ~@24 g3@13 ~@8 [f3,c5]@19 [eb3,eb4]@38 ~@26, ~@55 [ab3,bb3,d4]@11 ~@55 d4@6 ~, ~@61 ab4@5 ~@62]/4", // Bb7 Bb F5 Eb Bb7
  AS: "~@20 bb3@5 [f3,bb3]@5 ~@2, ~@19 d4@11 ~@2, ~@19 f3@5 ~@8", // Bb5
  AT: "[~@6 db4@3 ~ d4 ~@6 c3 ~@6 eb4@5 a4@23 ~@12, ~@6 [f4,g5]@7 ~@3]/2", // Fsus2
  AU: "~@2 eb2@7 ~ d2@2 ~@5 [f3,bb3,d4]@7 ~ f3@7, ~@2 eb3@3 ~@4 bb4@23, ~@9 f4@15 [bb3,d4]@8, ~@5 d3@11", // Bb
  AV: "~@7 f3@5 [f3,bb3]@4 ~@16", AW: "~@6 d4@5 ~@21", AX: "~@6 c4@5 ~@21",
  AY: "[~@4 e4@7 ~@8 [a3,eb4,f4,a4]@15 bb1@4 ~@5 [f3,d4]@5 [f3,d4]@6 ~@10, ~ f3@8 ~@7]/2", AZ: "~@9 [f3,bb3,d4]@5 ~@18",
  BA: "~@9 c4@9 ~@14",
  BB: "[~@4 bb2@2 ~@9 [bb3,d4]@5 ~ d2@2 ~@4 [f3,bb3]@7 [f3,bb3]@7 ~@9 gb3@6 [gb3,bb3]@6 ~ d3@17 ~@14 gb3@8 ~@25 f3@6 ~@27, ~@27 d4@15 ~@118]/5", // Bb Bb5 Gb
  BC: "~@5 f4@3 ~@24",
})).s("gm_piano").gain(0.32)

stack(piano, piano_soft)

More by Scott Joplin