Strudelify

Where or When

Dick Hyman

KeyE♭ majorTempo120 bpm
0:00/0:00
// Where or When — Dick Hyman
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 104 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 B@5 C@5 D@2 E F G@7 H@3 I@3 J@3 K@3 L@5 M@8 N@6 O P@2 Q@2 R S T@6 U@3 V@8 W@3 X Y Z@3 AA@6 AB@3 AC@2 AD@7 ~
>`.pickRestart({
  A: "~@14 d5@4 ~ e5@2 f5@11, ~@12 eb5@6 ~ eb5 ~@12",
  B: "[~@3 eb5@2 ~ db5@15 ~ db5@3 ~ e5@2 f5@2 eb5@15 ~@5 eb4@4 ~@4 ab4@5 bb4@5 ~@10 ab4@4 ~@2 bb4@8 ~ bb5@9 [bb5,bb6]@16 ~@10 bb3 ~@8 bb3@2 ~@2 bb3@2 ~@7 bb3@8 ~ bb3, ~@5 d5@2 ~@14 eb5@4 eb5@2 ~@27 g4@9 ab3@18 ~@40 g3@37 ~@2, ~@6 bb3@19 ~@20 f2@37 ~@36 eb2@40 ~@2, ~@68 b4@13 ~@79, ~@73 bb4@9 ~ g4@36 ~@41]/5", // Bb
  C: "[~ c4@5 ~@24 c4@4 ~@3 d4@4 ~@3 d4@3 ~@2 d4@4 ~@3 d4@4 ~@2 d4@6 ~ d4@5 ~@8 d4@6 d4@6 d4@7 d4@6 d4@5 ~@17 c4@3 ~ eb4@18 ~@9, b3@2 ~@32 eb2@39 ~@87, ~@35 db3@2 [d3,a3]@37 ~@86, ~@36 gb3@38 ~ bb3@19 ~@19 [ab3,eb4]@19 ~@28]/5", // D5 Ab5
  D: "[~ eb4@9 c4@11 ~ b2 [c3,e3,bb3]@7 ~@14 eb4@3 ~@2 eb4@8 ~ ab4@6, ab4@10 ~@11 bb2@2 ~@7 [eb3,ab3]@18 ~@9 g4@2 ~@5]/2", // C7 Ab5
  E: "eb4 db4 c4@9 ~@5", F: "~@13 ab4@3 ~@3 g4@11 ~@2, ~@5 eb3@10 ~, ~@10 g4@7 ~@15",
  G: "[~@12 g4@3 f4@4 ~@2 f4@2 e4@2 ~@6 bb2@22 ~@7 bb4@6 ~ bb4@5 ~ bb4@7 ~@6 bb4@4 ~@3 c5@6 c5@6 c5@6 ~ c5@5 ~@8 c5@5 ~ d5@5 ~@2 d5@4 ~@8 d5@6 a5@4 ~@3 d6@5 ~@16 f4@2 ~@2 [f3,d4,f4,bb4]@7 ~@2 [e3,db4,e4]@7 ~@3 eb5@13 ~ eb5@3, ~@3 bb3@11 ~ eb3@10 ~@47 bb2@19 c3@32 c4 [eb4,g4]@6 a4@7 ~@6 d5@7 ~@10 bb2@2 [d5,gb5]@6 ~@39 [ab4,c5]@17, ~@8 db4@6 ~@46 bb3@13 bb3@18 c4@19 ~ bb3@19 ~@6 d4@6 d4@6 d4@19 ~@14 d4@6 ~@19 [ab3,eb4]@18, ~@10 e4@4 ~@11 f4@28 ~@27 bb4@6 ~@6 [eb4,g4]@19 eb4@6 c4 [eb4,g4] c5@2 g3@9 ~@19 gb4@18 ~@19 g2@11 ~@7 f2@20, ~@83 eb2@7 eb2@40 ~ eb2@16 eb2@20 ~ [eb2,d5,g5,bb5]@19 ~@8 gb2@11 ~@18]/7", // Bb Dbm Eb D Ab Ab5 Eb Ebmaj7
  H: "[~@5 b3@2 bb3@2 ~ a3@2 ab4@15 ~@18 ab3@4 ~@5 c4@4 ~@6 eb4@4 eb4@5 eb4@4 ~ [g2,eb4]@16 ab4@2, ~ [ab4,eb5]@6 ~@5 c5@19 ab5@28 ~@37, ~ c4@3 ~@8 ab3@28 [eb4,ab4,c5]@9 ab3@9 c4@19 ~ bb3@2 ~@16, ~@2 f4@5 ~@5 f4@46 eb4@3 ~@35, ~@27 ab4@10 c3@22 [ab2,eb3,g3]@19 ~@18]/3", // Cm Ab5 Ab Abmaj7
  I: "[~@16 ab3@4 ~@10 [ab3,eb4]@9 ~@35 bb3@3 ~@15 bb4@4, ~ c4@19 c4@18 ~ bb3@33 ab3@4 ~@20, ~@59 bb2@8 bb2@8 ~@2 [d2,g3]@19, ~@64 f3@11 ~@21]/3", // Ab5 G5
  J: "[~@10 d3@8 ~@16 [g4,bb4,db5,g5]@4 ~@3 db5@7 [g4,bb4,db5,g5]@8 ~@17 ab5@3 ~@10 [g3,eb5]@9 ~, [b3,eb4,ab4]@18 ~ e3@19 ~ e3@17 ~ eb5@18 ~@21, ~@41 gb5@14 ~ bb4@19 ~@3 c5@16 ~@2, ~@58 bb5@17 ~@21, ~@72 ab4@3 ~ ab3@19 ~]/3", // Gdim Cm Abm
  K: "[~@25 g4@3 ab4 a4@6 c5@2 ~@2 d5@4 ~ b4@2 ~@7 f4@13 [d4,f4,ab4]@9 ~ d4@2 ~@13 [g4,c5,eb5,g5]@3 eb3@2, [d5,g5]@20 ~@8 gb3@2 ~@17 d3@28 ~@21, ~@15 a2@15 ~@18 g4@27 ~ eb4 ~@19]/3", // Ddim Cm G5
  L: "[~ eb5@7 ~ g5@6 ~@3 ab5@14 [ab4,ab5]@4 ~@10 [ab3,eb5]@9 ~@15 bb4@4 ~@7 [eb3,f4,a4]@13 ~@15 eb4@3 ~@17 g4@3 eb4 bb3 ~@14 g4@3 ~ [bb3,bb4]@5 ~ bb2@2, ~ [gb4,gb5]@14 f2@21 ~@20 c3@19 ~@19 [f2,c4,bb4]@19 ~@6 [bb2,b3]@13 ~@28, ~@8 [c2,eb3,g4,c5,eb5]@9 [c3,ab3]@19 ~ [c4,c5]@18 [bb3,g4,f5]@19 ~@20 eb4@15 ~@9 e4@13 ~@29, ~@18 [f5,c6]@18 ~@19 bb4@15 ~@5 eb5@20 ~@18 bb4@19 bb4@2 ~@26, ~@65 g3@9 ~@29 ab3@9 ~@17 eb2@21 ~@10]/5", // Ab Ab5 F7 Bb Gb Fsus4 Bmaj7 Cm …
  M: "[~ [bb3,eb4,bb4]@7 ~@4 [bb2,g4]@14 gb4 g4@18 ~@41 eb4@7 ~@9 eb5@2 ~@11 [eb4,eb5]@7 ab2@3 f4@15 ~@18 [f4,f5]@4 ~@35 g5@3 ~@29 [c4,eb4]@4 [gb3,c4,eb4,a4]@6 ~@16 bb4, ~@8 eb2@5 ~@13 [bb2,c4,c5]@21 ~ d4 eb2@37 ~@7 eb4@3 f3@9 ~ g3@18 ~ [g3,bb4]@38 g2@38 ~@5 c3@34 ~@4 g2@9 d4@3, ~@10 c4@16 ~@19 bb2@19 d4@4 bb2@9 bb2@6 bb2@17 [ab4,b4]@5 [ab4,b4]@18 ~@2 [c5,f5]@25 ab4@13 g4@16 g3@15 [bb4,d5]@2 g4@4 ~ ab5@18 eb4@5 g4@5 [g3,ab4]@11 ~@8 d3@6 f4@2, ~@10 gb4@2 ~@36 [gb4,a4]@25 [d4,gb4,a4]@13 ab3@18 a2@19 ~@21 c4@12 c5@7 g5@25 g4@3 bb3@9 f2@39 f3@11 f3@6, ~@11 c5@15 ~@22 d5@32 d5@6 [ab4,eb5]@12 eb4@6 ~ eb4@10 ~@25 f4@13 ab3@9 ~ bb3@20 d4@18 ab4@9 ab3@4 c4@5 ab3@20 [d4,f4,bb4]@12 bb3@5]/8", // Eb5 Eb F Cm Gbdim Bbsus2 Gm Abm …
  N: "[~@12 [e3,bb3,gb4,bb4]@7 ~@3 [c4,eb4]@4 ~@23 ab3@7 ~@3 [b4,d5]@16 ~@4 d6@16 c6@2 ~ [eb5,eb6]@4 ~@6 c6@4 ~@2 bb5@3 ~@7 gb5@3 g5@5 ~ eb5@3 ~@6 ab4@2 ~@2 f4@4 ~@2 gb4@2 ~@7 bb4@2 ~ ab4@6 ~ [bb2,gb4]@3 eb2 ~@8 [bb3,c4,eb5] ~@8, ~@2 [c2,db4]@19 ab3@6 eb4@4 c5 eb5@2 ab5@2 c6 eb6@2 ab6 c7 c6@15 bb2@20 ~ [b2,d5]@20 ~@10 bb2@57 ~@28, ~@2 gb4@10 ~@7 f2@10 ab4@29 ~@112 ab4@2 ~@10 [bb4,bb5]@2 ~@8, ~@7 g2@14 c3@37 ~@17 e2@22 ~@95, ~@22 [ab4,c5]@4 c4@32 [ab3,d4,g4]@19 ~ [ab3,gb5,b5]@19 ~@95]/6", // Gb7 Cm Bm Eb Ebm Cm7 Dbmaj7 Bm …
  O: "~ [eb2,eb5,bb5] ~@8 [bb3,c4] ~@5 [c5,eb5,g5,c6]@2 ~ eb2@7 ~ c6@2 [bb3,c4] ~@2, ~@26 [c5,eb5,g5]@3 g3@2 ~", // Eb5 Bbsus2 Cm Bbsus2 Cm
  P: "[~@4 [eb5,g5]@3 ~@9 [g3,bb3,c4]@7 ~@3 gb3@10 [a3,c4,eb4]@6 eb2@3 ~@16 a5@3, ~@4 c6@9 [c5,eb5,g5]@10 a5@22 ~@9 c4@9 ~, ~@7 bb1@16 [d5,gb5,d6]@19 ~@9 d5@12 ~, ~@14 c6@10 ~@2 eb2@16 ~@3 gb3@10 [gb3,gb5]@9]/2", // Eb C7 Adim Cm D Gb
  Q: "[~@9 bb3@7 ~@9 [ab4,c5]@3 ~ e4@7 ~@3 eb4@2 ~@7 [ab4,c5,eb5]@9 [c2,eb4,bb4,eb5]@2 ~@5, [g2,d5]@4 gb2@5 f2 ~@6, ~@19 bb3@19 [ab3,ab4,c5,eb5]@3 ~@23, ~@28 e3@9 ~@27]/2", // Ab Cm7 G5 Ab
  R: "~@3 [bb3,bb4,eb5]@6 [f2,c5]@3 ~ eb5@8 c4 [c5,eb5,ab5]@4 ~@2 ab4@3 ~, ~@12 ab3@9 [f3,ab3,ab4]@3 ~@8, ~@13 ab4 ~@18", // Eb5 F5 Ab Fm
  S: "~@9 ab3@6 g4@3 [ab3,ab4]@7 eb5@3 [f2,ab3,c5]@4, ~@8 c4@9 ~@15", // Ab Fm
  T: "[~@5 [ab3,ab4,c5]@9 ~ [f2,ab3,ab4,c5,eb5,ab5]@8 ~@8 [bb2,ab3,d4,gb4]@13 ~@7 eb4@11 gb5 ~@17 eb5 ~@7 [c3,e3,bb3]@9 ~@2 db5@2 c5@3 ~@4 ab4@3 f4@6 gb4@3 ~ g4@6 db5@3 [f3,b4]@8 ~@7 [bb2,bb3]@10 ~ gb3 ~ g3@3 ~@6 bb2@7 eb2@2 ~@10 eb2@6, ~@25 c5@19 eb5@18 ~ g5@14 g5@4 ~@17 d5@2 ~@39 bb4@18 ~@21 c5@14, ~@50 [e2,ab3,ab4]@12 ~ [eb2,g4]@16 e5@2 ~ db5@17 ~@2 f2@11 ~@9 bb2@17 ~@2 eb2@18 ~@18 [c3,g3,c4]@16, ~@72 g3@9 ~@20 ab3@19 ~@35 f3@2 ~ [bb3,eb4,g4,bb4]@18 ~ [eb4,g4]@15, ~@78 f5@3 ~@16 eb5@2 ~@93]/6", // Ab Fm7 Bbaug C7 Fdim Bb E Eb …
  U: "[~ [g3,c4,eb4,g4,c5]@10 ~@2 [c4,eb4,g4,c5]@7 c3@2 ~ eb2@6 ~@6 gb3@7 ~@13 a3@4 ~@11 g2@9 ~@11 db3@6, ~@11 c3@9 ~@2 [d4,gb4]@38 gb3@2 d5@18 ~@16, ~@23 [a4,d5]@38 [g3,bb4]@19 [gb2,db4,e4]@16, ~@29 c3@13 a3@13 ~@4 d4@20 ~@17, ~@48 c4@12 g4@19 ~@17]/3", // Cm D D5 Gm Gb7
  V: "[[c5,db5]@2 ~ eb5 ~@2 eb5 ~ eb5 ~@2 eb5 ~ eb5@2 ~@3 eb5@2 ~@3 eb5@5 eb5@4 ~@6 c4@2 ~@2 eb4@2 ~ eb4 ~ eb4 ~ eb4 ~ eb4@2 ~@3 eb4 ~@4 eb4@4 eb4@5 [f3,eb4]@7 ~@3 eb4@7 eb4@3 eb4@7 eb4@2 ~ [c4,eb4]@5 ~@4 ab4@8 ~@7 [f3,ab3]@12 ~@7 [e2,bb3]@12 ~@20 g3@7 g5@2 ~ eb2@6 [f4,ab4,c5]@2 ~@11 ab2@6 d5@2 ~@11 db3@6 ~@3 eb3@2 ~@8 [c2,eb3,g4,c5,eb5,g5]@2 ~@7 [eb3,gb4,eb5]@4 ~, ~@2 d5@2 ~@28 eb5@8 db4@2 [bb2,ab3]@36 d4@2 f2@20 ~@18 [bb2,c4]@18 ~@20 [eb2,d4,g4]@27 ~@46 c2@5 ~@22, ~@3 [f2,eb3]@38 d4@2 ~@34 db4@2 eb3@20 ab3@5 ~@2 eb3@11 ~@20 eb4@19 g3@19 ~@76 gb5@2 ~@3, ~@166 bb2@17 ~@73]/8", // Dbmaj7 F7 Cm Fm Edim Fm Cm Ebm …
  W: "[~@2 [g4,c5,eb5,g5]@3 eb3@7 bb5@2 [f2,eb3]@4 ~@4 eb5@2 ~ eb3@3 ~@3 c5@2 ~@8 eb5@2 [f2,eb3,ab3]@8 ~@2 f5 g5@17 ~@10 f3@9 ~@6, ~@21 [ab4,ab5]@3 ~@29 gb5@2 ~@25 c4@10 ~@6]/3", // Cm F7 Fm7 Ab
  X: "~@4 [f3,db4]@7 gb5@2 ~@10 b2@7 ab5@2, ~@20 d6@11 ~", // Db
  Y: "~ c2@3 ~@13 g5@2 ~ [c2,eb3]@2 ~@7 eb3@3, ~@16 ab5@3 gb5@13", // Cm
  Z: "[~@2 g5@3 ~@33 eb5@5 ~@8 db3@5 ~@23 g2@2 ~ bb2 ~@9 b1@4, ~@6 f2@38 [gb2,bb4,f5]@16 f4@6 ~@4 f2@13 ~@13, ~@6 ab3@19 [c4,ab5]@7 c5@3 ab3@8 ~@2 gb4@17 ~@19 a2@2 [b2,a3,db4,f4]@13, ~@8 ab5@8 c3@27 ~@13 db3@3 eb4@3 ~@7 [a3,b3]@13 ~@14, ~@10 c6@34 ~@13 bb3@5 ~ [eb3,eb4]@19 ~@14]/3", // Gbmaj7 Fm Dbaug Asus2 Eb
  AA: "[~@3 [bb2,ab3,b3,d4]@19 ~ b4@2 ~@9 bb2@8 ab3@2 bb4@14 bb4@4 ~@34 a4@5 ~@15 d4@5 ~@14 [d4,d5]@4 ~@17 eb5@2 ~@16 eb5@3 ~@7 [ab2,g3,f4,c5]@8, ~@22 c5@3 [eb2,g3,bb4]@19 [bb3,c4,eb4]@19 eb2@11 g4 c5@2 eb5@2 g5 c6 eb6@2 c7@8 c4@10 eb2@38 ~ bb2@19 [a2,gb4,b4]@18 ~@15, ~@63 [g4,c5]@9 eb4@29 d5@20 a3@5 gb4@13 ~ eb5@10 db4@2 f4 ab4 c5@4 ~ eb5@15 ~@4 f5@14, ~@63 [c4,eb4]@7 g3@31 a4@20 d4@9 [a3,a4]@9 ~ f4@7 ab3@11 ~@10 g3@9 ~@15, ~@68 bb2@33 gb4 d4@9 gb3@28 ~@6 f3@14 ~@33]/6", // Abdim D Fm Eb Cm7 B7 C5 Cm …
  AB: "[~@5 [a2,gb3,gb4,a4,c5,f5]@4 ~@6 gb3@9 ~@10 d3@6 ~ [db2,ab2]@3 ~@6 [bb3,g4]@9 c3@2 ~@26 [gb2,eb3,c4,eb4]@7 g4@2, ~@14 [ab2,gb4,a4,c5,f5]@9 ~ [g2,f3,g4,bb4,d5,g5]@16 [b3,eb4,g4]@2 ~@7 [c2,g2,eb4]@11 ~@2 f2@24 ~@10, ~@62 ab4@19 ab4@15, ~@68 [c3,c4,eb4]@17 ~@11]/3", // F Db5 Eb Cdim F Gm7 Baug Cm
  AC: "[ab4@4 ~@6 [f3,bb3,d4,f4]@10 g2@3 ~@12 bb4@7 ~@19 ab4@3, ~@4 bb4@31 ~@7 c5@22, ~@4 g2@16 ~@3 c2@19 ~@6 [f2,c4]@16, ~@29 [e3,bb3,db4,e4]@14 ~@11 [ab3,eb4]@10]/2", // Bb F5 Bbdim Ab5
  AD: "[~@9 c5@5 ~@32 c4@10 ~@78 bb3@12 ~@2 a3@2 ~@45 c8@23 ~ bb1@2 ~@3, ~@3 [b2,a3]@11 bb2@42 e2@15 ab5@2 bb5@17 gb4@2 bb4@3 db5@14 eb4@3 gb4@3 db4@3 eb4@4 bb3@3 db4@4 ab3@17 c4@4 ab3@2 eb1@13 g3@2 bb3@5 g4@3 bb4 d5 f5@2 g5 bb5 d6 e6 f6@2 g6 bb6@3 f7@4 bb7@25 g1@5 ~, ~@15 d4@2 d5@9 f3@31 ~@4 db6@3 b2@11 gb5@3 ab5@19 ab4@3 bb4@47 bb3@4 g3@12 f3@57 ~@4, ~@16 [g4,b4]@40 eb6@7 eb6@10 ab3@7 eb5@2 db4 gb5@20 gb4@3 ab4@43 ~@9 bb1@11 d4@51 ~@4, ~@16 ab3@20 [ab3,d4,d5,g5,d6]@20 ~ eb5@9 bb5@2 db6@18 db5@3 eb5@60 ~@11 g2@11 f4@49 ~@4]/7", // B7 G
})).s("gm_piano").gain(0.4)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  A@3 B@2 C@3 D@3 E@5 F@2 G H@2 I ~@3 J@3 K L@3 M@2 N@2 O P@2 ~@12 Q R S T U ~ V W@2 X ~@2 Y@2 ~@3 Z AA@2 AB AC AD@2
  AE@2 AF AG@3 AH@2 ~@4 AI ~@13 AJ@3
>`.pickRestart({
  A: "[[a2,g3,c4]@19 ~@15 f5@3 ~@2 g2@18 ~ [c3,e3,bb3]@20 ~@18, ~@19 [d3,gb3,c4]@19 ~@58]/3", // Am7 C7 D7
  B: "[~@19 d4@3 ~@6 bb4@26 ~@10, ~@17 bb2@38 ~@9, ~@9 ab3@18 ~@5]/2",
  C: "[~@41 c4@4 ~@5 c4@12 ~@34, ~@31 [eb2,g3]@36 ~@29, ~@8 c3@9 ~@7]/3", // Eb
  D: "[~@11 d4@7 ~@12 ab3@13 ab3@4 ~@2 eb3@3 ~@7 [f2,eb3]@2 ~@14 c4@9 c4@2 ~@2 [f2,eb3]@2 ~@6, ~@9 eb2@21 [e2,e3]@18 ~ g3@19 ~@19 [g3,ab3,eb4]@2 ~@7, ~@10 [eb3,g3]@20 ~@17 f2@4 ~@24 [f2,eb3,g3,ab3]@12 ~@9]/3", // F7 E Abmaj7 Eb Fm7
  E: "[~ [f2,eb3]@9 [f2,eb3,g3,ab3]@12 ~@8 ab2@17 ~@10 gb4 ~@8 d4 ~ eb3@18 ~ ab3@19 ~@6 gb4@2 ~@12 c2@8 e3 ~@13 g4@3 ~@9, c4@10 ~@39 g2@18 f2@18 ~ [bb2,b3,eb4]@19 ~ g2@20 ~@17 f2@9 ~@8, ~@53 bb3@5 ~@22]/5", // F7 Fm7 Bmaj7
  F: "[~@9 [f3,b3,d4]@10 ~@3 g3@37 ~@5, ~@3 ab3@16 eb2@22 ~@23]/2", G: "~@8 g4@3 ~@5, ~@14 c4@7 ~@11",
  H: "[~@2 d4@6 ~ a4@6 [gb4,a4]@6 ~@8 [d5,d6]@5 a5@4 ~@12 g3@9 ~@5, ~@2 gb4 ~@18 [g3,a4]@18 ~@2 d6@18 ~@5, ~@28 gb5@6 ~@4 bb2@21 ~@5]/2", // Gbm D Gsus2
  I: "~@7 c3@9",
  J: "[~@11 eb3@9 ~@10 [f3,b3]@9 g3@31 g3@5 ~@21, ~ f2@18 ~@7 bb2@12 ~ [eb2,d4,g4]@36 ~@21, ~@39 bb2@19 ~@38]/3", // Fdim Ebmaj7
  K: "[g2,f3]@16 c2@3 ~@13", // G7
  L: "[~@9 bb4@7 ~@9 ab3@18 ~ c4@17 ~@12 f3@8 ~ gb3@3 ~@11, ~@7 [c3,bb3]@17 c3@19 ~@20 g4@21 ~@12, ~@8 gb4@15 f2@20 ~@18 g2@20 ~@15, ~@21 f3 ~@10, ~@16 b4@5 ~@3]/3", // C7
  M: "[~@34 b3@9 ~ [c2,eb3,g4]@3 ~@6 [c2,eb3]@9 c2@2, ~ g2@20 ~@11, ~@5 f3@26 f3@11 ~@22, ~@12 d4@5 ~@15]/2", // Cm
  N: "[~@2 c5@6 ~@9 c5@19 ~@28]/2", O: "~@8 g4@2 ~@7 f2@13 ~@2, ~@5 d5@5 ~@6 b4@14 ~@2",
  P: "[~@15 c4@2 ~@5 ab3@13 ~ g3@18 ~@2 eb4@5 ~@3, ~@12 g4@5 ~@47]/2", Q: "~@27 g4@4 ~", R: "~@14 g4@2 ~@7 g3@2 ~@7",
  S: "~ bb4 ~@8 g3@2 ~@8 g3@9 ~@3", T: "~@3 c5@2 ~@27", U: "~@2 gb3@3 ~@11", V: "~@16 [f3,ab3,c4,eb4]@9 ~ g4@2 ~@4",
  W: "[~@3 [e3,eb4,g4]@8 ~@2 eb4 ~@15 c5@2 ~@10 f3@9 f2@6 ~@8, ~@31 c2@18 ~@15]/2", // Em
  X: "~@6 [f4,eb5]@9 ~@17, ~@3 f2@11 ~@18", Y: "[~ f5@2 ~@22 ab3@15 a4@2 ~@22]/2", Z: "~ e3", AA: "[~@2 ab3@39 ~@23]/2",
  AB: "~@6 c4 ~@9", AC: "~@20 d3@3 ~@9", AD: "[~@15 [b2,ab3]@13 c4@27 ~@2 [gb3,g4]@7, ~@14 bb2@5 ~@13]/2",
  AE: "[~@2 [d2,f3]@9 ~ gb3@7 ab4@2 [g2,f3]@17 ~@21 c5@5, ~@19 b4 ~@37 c2@5 ~@2]/2", // Dm G7
  AF: "~@5 c2@6 ~ eb5@2 ab3@3 ~@7 [f2,ab3]@4 ~@4, ~@11 bb4@2 ~@19", // Fm
  AG: "[~@2 [f2,eb3,ab3]@3 ~@17 g2@3 ~@5 [g2,f3,b3]@9 [a2,f3,c4]@3 ~@7 a2@9 ~ f3@2 ~@7 bb2@8 ~@2 b2@2 ~@7 [g3,c6]@8 ~, ~@21 [f3,b3]@4 ~@14 g5@37 ~@2 g5@18, ~@58 [bb2,db4]@2 ~@17 g3@3 ~@16]/3", // Fm7 G7 F C5 Fdim Bbm
  AH: "[~ eb3@2 ~@7 [c2,eb3]@8 ~@11 c2@8 ~@2 c5@25, ~ g5@16 ~@47]/2", AI: "~@7 c4@20 ~@5",
  AJ: "[~@31 g7@29 ~@2 eb1@6 ~@28, ~@7 d7@8 ~@9]/3",
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)

More by Dick Hyman