Strudelify

Shepherd's Hey!

Percy Grainger

KeyG majorTempo120 bpm
0:00/0:00
// Shepherd's Hey! — Percy Grainger
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 83 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 C D E F G@2 H I J K L M N@2 O P@5 Q R S T@6 U V@2 W X@2 Y Z AA@3 ~ AB@4 AC AD@3 AE@3 AF AG@3 AH@7 AI@2 AJ AK AL@5
  AM@8 ~
>`.pickRestart({
  A: "b4 ~@2 c5 ~@2 d5 ~@2 b4 ~ c5@3 ~@3 c5 ~@5 b4 ~@2 c5 ~@2 d5 ~@2",
  B: "~@3 g4 ~@5 e4 ~ f#4 ~@2 b4@2 ~ c5@2 ~ [g4,d5] ~ b4 ~@2 f#4 ~@2 g4 ~@2 [f#4,b4], ~@8 d4@2 ~@4 a4 ~@10 c5@5 ~@2", // G5 B5
  C: "~@2 [e4,c5] ~@2 [d4,d5] ~@2 e4 ~ d4 ~@3 c4 ~ b3 ~@2 a3 ~@2 g3 ~@2 a4 ~@2 [a4,b4] ~@3, ~@2 g4 ~", // C D Asus2
  D: "~@13 c5@2 ~@2 c5@2 b4 ~@2 c5 ~@4 b4 ~@2 g4 ~",
  E: "~@4 d4@2 ~ f#4 ~@2 b4@2 ~ c5 ~ [g4,d5] ~@2 b4 ~@2 c5@2 ~ g4 ~ b4 ~@2 c5 ~@2, ~@4 e4 ~@5 a4 ~@12 d5@2 ~@7", // G5
  F: "[d4,d5] ~@2 e4 ~ d4 ~@3 c4 ~@2 b3@2 ~@4 g3 ~@3 a4@2 d3 [b3,g4] ~@5 [g3,g4], ~@11 g4@12 ~ b4@2 ~@6", // D Em G
  G: "[~@6 c5@12 b4 ~@6 g4 ~@12 [f#3,c4,d4]@5 ~ [g2,d3,g4,b4] ~ c5 ~@2 [g3,d5] ~@2 b4 ~@2 c5@5 ~ [a2,a4,b4] ~@2, ~@31 [e4,a4]@12 ~@12 e4@2 ~@7, ~@36 d2@7 ~@21]/2", // D7 G G5 Asus2 A5
  H: "c5 ~@2 d5 ~@27 [d3,b4]", I: "~@5 [g3,g4] ~@5 c5@10 ~@2 [g2,d3,b3] ~@5 g4 [d3,g3,d4] ~, ~@11 d3 ~@11 b4@2 ~@7",
  J: "~@10 [f#3,d4]@5 g2 [d3,g4] ~@2 c5 ~@2 [g3,f4,d5] ~@2 b4 ~@2 [g3,e4] ~@3, ~@2 a4@6 b4 ~@5 c5@2", // D G5 G7 C
  K: "~@2 b4@2 ~ c5@2 ~ [b3,g4,d5] ~@5 [a3,c4,d4] ~@17, ~@2 a2 ~@29", // G D7
  L: "~@5 g2 g4 ~@2 b4 ~ d5 b3 ~ b4 ~@2 g4@4 ~@8 a4 [d3,b4] ~, ~@17 c5@2 ~@13, ~@17 d3 ~@14", // G
  M: "c5 ~@2 d5 ~@2 b4 ~@2 [d2,e4] ~@5 [d3,f#3,c4,d4]@5 ~ [g2,d3] ~@2 b4 ~ d5 [b2,g3,f4] ~ b4 ~@2, ~@9 a4@11 ~ g4@2 ~@9, ~@9 c4@6 ~@17", // Dsus2 D7 G5 G7
  N: "[[g3,c5]@2 ~@2 c5@2 b4@2 ~ c5@2 ~ [d3,b3,g4] ~ e5@2 ~@2 [d3,c4,a4,f#5]@3 ~@2 [g2,d3] b3@4 ~ c3 g3 c5 ~@5 [b3,d5]@2 ~@5 [g3,d4,g4] ~@5 [c4,e4] ~@5 f#3 ~@2 a4@2 ~ [d3,b4] ~, [c3,e4]@6 a2 ~@17 b4 ~@6 [e4,a5]@8 ~@5 b4@2 ~@4 c5@10 ~@4, ~@2 d5@4 ~@6 d5@2 ~@9 g5@5 ~@5 g5@6 ~@25, ~@35 f#5@4 ~@25, ~@36 [g2,d3,e5]@3 ~@25]/2", // C5 G D7 G5 Bm G5 C G …
  O: "~@4 g4 d4 ~@11 f#3 ~@5 [g2,g4] ~@2 b2 ~@2 [d3,a3,f4] ~@2, ~@11 a4@13 ~@8", // G Dm
  P: "[b2 ~@2 [g3,d4,e4]@2 ~@4 b2@2 ~ c3@2 ~ [d3,b3,d4] ~@6 [a3,c4,d4] ~@7 [g1,b3,d4,g4]@10 a4@2 ~ [g2,d3,b4] ~@4 g5 [d3,b3,g4] ~@13 a4@3 [g2,d3,b4,g5] ~@5 [g4,g5] ~@13 d5 ~ g2 [b3,b4] ~@2 c5 ~ b2 [d5,f5]@2 b4@2 [c3,g3] [e4,c5,f5]@3 e5 a2 ~ [c4,b4,d5]@2 c5 d3 ~ [b4,d5]@3 c5 ~ [c4,d4,d5]@2 ~@2 g2 ~@9 [a4,d5]@3 [g2,d3,b4,g5] ~@5 [d3,b3,g4,g5] ~@5 [a2,d3] ~@7 a4@3 [g2,d3,b4] ~@3, ~@3 c3 ~@5 e4 ~@5 e4@2 ~@5 [d2,f#4]@2 ~@19 g5@2 ~@9 c5@12 ~@12 [a4,g5]@10 ~@7 d4 ~@15 [b3,d4] ~@7 f#4@2 ~ [b3,g4]@11 ~@17 [d3,c4,f#5]@7 ~@3, ~@55 g5@11 ~@18 [d3,e5]@4 ~@6 g3@2 ~@19 d3@3 ~@9 b4@6 ~@11 [c5,g5]@13 ~@3, ~@60 f#5@6 ~@15 f#5@6 ~@2 f5@2 ~@34 a4@5 ~@26 g5@2 ~@2]/5", // Em7 G D7 G B Dm C5 Fmaj7 …
  Q: "~ [g4,g5] [d3,b3] ~@4 d2 d3 ~@4 e5@3 d5 g2 ~ [b3,b4] ~ c5 ~ b2 [g3,d4,d5] ~@2 c3 g3 [c5,f5]@3, ~@7 [a4,g5]@9 ~@11 b4@2 e4 ~@2, ~@11 f#5@5 ~@3 f5@2 ~@3 f5@2 ~@6", // G B G5 F5 A7
  R: "~ a2 ~ g3 c4 c5@2 ~ [d3,g3,d4,b4] ~@2 c5 ~@2 [d3,f#3,c4,a4,d5]@2 ~@5 [g2,d3] b3 ~@9, e5@3 d5@2 ~@16 [d4,g4]@8 ~@3", // G D7 G5
  S: "~@2 g2 [b3,b4,d5,b5] ~@3 b2 g3 [d4,g4,b4] ~@3 a2 d3 [c5,e5,c6]@6 [d3,c4]@2 ~@2 a5 ~ [b3,b4,d5,b5] ~@4, ~@9 g5@2 ~@4 c4 ~@5 d4 ~@10", // Bm G C D7 Bm
  T: "[~ [b3,d4,g4,b4,g5] ~@5 [d3,a4,e5]@6 [c4,a4,d5]@2 ~@3 [d3,g5] [b3,b5] ~ c6 ~ b2 [g3,f5,d6] d4 ~ b5 c3 ~@2 d6@2 ~ a2 g3 c4 ~ c6 ~ [d3,g3,d4,g5,d6] b3 ~ e6@2 ~ [d3,a3,c4] ~@4 [g2,d3] [b3,b5,g6]@4 ~ g3 e4 ~@5 [b3,d6]@3 ~@3 [g3,b3,d4,b4] ~@5 [c5,e5,c6]@6 [d4,f#4,a4,c5]@2 [c5,f#5,a5]@2 ~ [g3,d4,b5] d5@2 ~@4 [d4,f4] ~@5 c4@4 ~ a4 [b3,b4] ~@4 [a3,b3,d4,f4,f5] ~@2 c6@2 ~ [g#3,d4,e4,e5] ~ b5@2 ~@2 [a3,c4,e4]@2 ~@3 [d#4,a4,b5]@3 c6@2 ~@2 [d4,g4]@5 ~@2 [a3,c4] d3@5 ~ [g1,g2] ~@4 [d3,g3,b3,g4,b4,d5,g5]@12 [a2,a3] [b2,b3,g4] ~@6 [g2,g3,b4] ~@15 [a2,a3]@2, ~@6 a5@9 ~@14 c6@2 ~@2 c6@2 b5@2 ~@9 f#6@4 ~@10 g6@7 ~@32 a5@10 ~@2 b5@3 ~@3 d6@2 ~@6 d6@4 ~@63, ~@7 [g3,c4] ~@5 f#3 ~@16 e5@4 ~@12 a5@2 ~@10 [c6,a6]@9 ~@3 [d5,b5]@2 ~@12 a4 ~@2 [g4,b4,g5]@2 ~@4 [g4,d5,g5]@4 ~@2 [a4,c5,e5]@4 ~@24 c6@4 a5 ~@55 [c5,f#5]@5, ~@30 e4@2 ~@29 f#6@6 ~@27 b4@4 ~ f#4@2 ~@4 [f#4,d#5,f#5]@4 ~@13 [g4,e5,c6]@4 ~@2 g4 ~@5 [b4,g5,d6]@5 ~@4 f#3 ~@37 [c3,c4]@11, ~@63 [g2,d3,e6]@4 ~@9 [d3,a3,d4] ~@23 e4 ~@5 d#4@4 ~@32 [d4,f#4,c5,d5]@6 ~@19 [b4,d5]@2 ~@5 [d5,g5]@2 ~@4 [g4,g5]@11 ~]/6", // G Dsus2 D7 G5 B G7 G5 D7 …
  U: "~ [b2,b3,g4,b4,d5] ~@4 [d5,g5] [g3,b4] ~@11 c#5@2 [a2,a3] ~@2 [b2,b3,g#4,b4] ~@2 c4 ~@2 [d3,d4,f5] ~, ~@12 [g4,g5]@9 ~@11, ~@13 [a2,a3,d5]@9 ~@10", // G G5 G A E Dm G D5
  V: "[~ [b2,b3] ~@2 [c3,c4,e4,c5,e5]@6 [b2,b3,c5] ~ c4@2 ~ [d3,d4,g4,b4] ~@5 [d2,d3,d4,f#4,a4] ~@5 g1 ~@7 [g2,g3]@3 [g4,b4,d5]@2 ~@4 [g3,b4,d5,g5]@3 ~@11 [a2,a3]@2 ~ [b3,g4] b2 ~, ~@12 c3 ~@8 [c5,d5]@2 ~@4 [g4,b4,d5,g5]@12 ~@10 g5@11 ~@4, ~@27 g2@8 ~@9 g2 ~@19, ~@30 b2@8 [b2,b3] ~@11 [c3,c4,g4]@11 ~@3, ~@32 d3@6 ~@11 [c5,e5]@7 [f#4,c5,e5,f#5]@5 [b4,d5]@2 ~]/2", // B C Cmaj7 G D G A Em …
  W: "~@3 [g3,b4,d5,g5]@2 ~@4 [a2,a3]@6 ~@5 f4 b3@2 ~@3 [d3,d4,f4,g#4,b4,d5,f5]@3 [b2,b3] ~@2, ~@3 g2 ~@5 [g4,d5,e5,g5]@11 [g#4,b4,d5]@2 ~@10, ~@15 c#5@6 b2 ~ [c3,c4]@6 ~@3, ~@9 [a2,a3]@2 ~@5", // G A Ddim B Em7 G#dim C A
  X: "[[a4,c5]@6 ~@6 [d3,d4,g4,b4]@5 ~@3 d3 ~@7 [c4,d4,f#4,a4,f#5]@24 ~@2 d3 ~@5 d4@4, [e4,e5]@17 ~@5 f#4@5 ~@37, [c3,c4] ~@5 [b2,b3,a4,c5]@11 ~@2 [d2,a2]@2 ~@5 d5@26 ~@12, ~@8 c4@9 ~@4 [c4,d4]@7 ~@36, ~@9 c3@8 ~@7 c5@27 ~@13]/2", // Am G D7 E C F D5 Csus2
  Y: "~@8 d4 ~@4 b4@3 ~@3 d4 ~@2 b4@2 ~@8",
  Z: "~@5 [g2,d3] ~@2 c5@2 ~ [d4,d5]@3 b4@2 ~ c5 ~ d5@3 b4@3 c5@2 ~ [b4,d5] d3 ~@2, ~@5 b4@3 ~@24", // G5 D Bm
  AA: "[~@3 d4@8 ~ b3 ~@12 b4@4 ~@5 b4 ~@14 b4@3 ~@3 g4@3 b4@3 [g4,a4]@5 ~ a4@5 ~ b4@2 c5 ~@2 f4@3 b4@3 e4 ~ f4@2 ~ b4@3 [c4,c5] ~@2 [b3,d5], ~@11 g4@32 ~@18 d2 ~@4 f#4@5 ~@2 g4@6 ~@9 e4@2 ~@6, ~@67 d4 ~@10 d5 ~@5 c5@5 d4 ~@6]/3", // Gsus2 C Bm
  AB: "[~@17 c5@13 ~@6 d4@7 ~@8 f#3@7 ~@4 c5@3 ~@3 b4@3 g3@4 ~@5 c5@4 [b3,g4]@7 ~ c4@10 ~ d3@11 a4@2 [b4,g5]@2 ~@4 [d3,b3,g4,g5] ~@5, ~@2 b4@16 ~@12 b4@13 a4@15 [a4,b4]@7 ~@6 e4@13 b4@3 ~@4 [f#4,c5]@12 ~@13 [g2,d3] ~@11, ~@11 g4@20 ~@5 g4@23 b3@6 [a3,f4,d5]@6 c5@9 ~@4 d5@34 ~@10, ~@77 [c4,a4,b4]@7 ~@18 [b3,d4,g4,b4]@16 ~@10]/4", // Em G Asus2 F#dim G5 Dm F G
  AC: "g5@5 ~ [d3,c4] ~@2 a4@2 ~ [g2,d3,b4] ~@4 [d3,b3,g4,g5] ~@5 g5@3 f#5@3 [d3,a3,c4] ~@2, [c5,d5]@11 ~@12 a4@9, a2@2 ~@21 d3@2 ~@4 e5@3, d3 ~@5 f#5@5 ~ g5@2 ~@9 d2 ~@8", // D7 G D7 Csus2
  AD: "[d5 ~ [g2,d3] [b3,b4] ~@2 c5 ~ [g3,d5,f5]@2 ~ b4 ~ c3 e4@2 e5@2 a2 d5@2 ~ c5 ~@2 [d3,g3,b3,d4] ~ c5@2 ~ d3 [a3,c4]@2 ~@4 [b3,d4,g4]@9 ~@4 [g3,b4,d5,g5,b5]@3 ~@3 [b2,d3,g3,b3,g4,b4,d5,g5]@4 ~@3 [c3,e3]@5 [a3,d4,a4] f#3 ~ [f#5,a5]@2 ~ [g2,b2,d3,g3,b4,d5,g5,b5]@3 ~@3 [g4,b4,d5,g5]@4 ~@3 [d3,c4]@5 a4 f#3@3, ~@3 f5@2 ~@2 b2@2 ~@4 [g3,c5,f5]@3 ~@3 g3 ~@4 b4@2 ~@4 [f#3,a4,d5]@2 ~@5 [g2,d3] ~@12 [g2,b2,d3] ~@11 [a2,a3,c5,e5,g5,c6]@5 ~ [d3,c5]@3 [a4,c5] ~@8 [b2,d3,g3,b3] ~@5 a5@10, ~@86 [g3,a3,a4,c5,e5]@5 ~ [a3,c4,c5,d5]@4, ~@93 d3 ~@2]/3", // G5 B G7 G Am G C D5 …
  AE: "[~@2 [b2,d3,g3,g5,b5]@3 c6@2 ~ [b2,d3,g3,b3,d6]@3 b5@2 ~@7 [a2,c3] ~ c6@2 ~ [d3,g3,b3,d4,g5,d6]@3 e6@2 ~ [d3,f#3,a3,a5,f#6]@3 ~ g2 ~ [b3,b5,g6]@4 c3 ~@8 [b3,d6,e6]@5 ~ [g3,b3,b4,d5,g5,b5]@3 ~@3 [d3,a3,d4] ~@5 [a4,c5]@2 [a4,c5] g3@2 [g4,b4,d5,g5]@5 ~ [d4,f4,g4,b4,d5,g5]@5 ~ [c4,f#4,a4,e5,a5]@5 [b3,a4] d#4@5, ~@2 g2 ~@5 f5 ~@5 [c3,e3,g3,c4,e5,c6]@4 c6@2 e3@2 ~@20 g3@6 [a6,b6] [g2,d3,f6,g6]@6 ~@41, ~@16 d6@3 [a3,b5]@4 ~@8 c4 ~@11 e4@12 ~ [d4,g4] ~@5 [e5,g5,c6]@10 ~@19 b4 ~@4, ~@44 [a7,b7]@2 [e7,f7]@9 ~@15 [f#5,a5]@2 ~@24, ~@45 g7@2 [c7,d7]@8 ~@7 c5@6 [d4,f#4]@4 ~ [d4,b5] ~@11 [e4,c5]@2 ~@3 [f#4,d#5,f#5]@5 ~]/3", // G Am G D Em E7 G D5 …
  AF: "[b3,d4,f4,b5]@3 c6@2 e5 ~@2 b5@2 ~@2 a3 ~@3 c6@2 ~@3 c6@3 ~ [d4,g4]@5 ~ [d2,d3], f5@2 ~@3 d6@5 ~@5 d6@4 ~@13, a3 ~@5 [g#3,d4,e4]@5 ~ [c4,e4,a4,e5,c6]@5 ~ [d#4,g4,a4,b5]@5 ~ [b4,g5,d6]@6 ~@2, ~@15 e6@2 ~@15", // Bdim G5 D E7 Am D#aug G
  AG: "[~@2 [d3,f#3,a3,c4,d4,f#4,c5,d5]@6 ~ [g1,g2] ~@16 a2@2 b2@3 [g4,b4,d5]@2 [b4,d5,g5]@6 [g4,c5,e5]@6 ~@3 [a2,a3]@2 ~@4 [b4,d5]@2 [b4,d5,g5]@6 ~@9 [a2,a3]@3 b2@2 ~ [g#4,b4,d5]@2 ~ [d3,d4] ~ b3@2 ~@4 [e4,a4,c5,e5]@2 b2 b3 ~ [c3,c4]@2 ~, ~@14 [d3,g3,b3,g4,b4,d5,g5]@14 ~@5 [g2,g3] ~@5 [c3,c4]@11 ~ [b2,b3]@4 ~ [g2,g3] ~@6 [a2,a3]@8 ~@3 b3 ~@2 [c3,c4,f4] ~@4 b2 ~@2 [c3,c4]@6 ~@5, ~@25 a3@3 b3@2 ~@9 g5@3 ~@3 [f#4,c5,e5,f#5]@5 ~@3 g4@2 ~@7 [g4,d5,e5,g5]@13 ~@4 f4@4 ~@13, ~@68 c#5@7 ~@5 [g#4,b4,d5,f5]@4 ~@12]/3", // D7 G C A Bm G A G#dim …
  AH: "[[d3,d4,g4,b4,d5]@3 ~@3 [d2,d3,d4,f#4,a4,c5,d5]@4 ~@2 [g1,g2] ~@7 [g2,g3]@3 [b2,b3]@3 [g4,b4,d5]@2 ~ [g2,b4,d5,g5]@6 [c5,e5]@6 ~@2 [a2,a3]@3 [b2,b3]@2 ~ [g4,b4,d5]@2 ~ [g3,b4,d5,g5]@6 [a2,a3]@6 ~@8 [c3,c4,f4,g#4,b4,d5]@2 ~ [d3,d4]@2 [b2,b3]@3 ~@9 [c3,c4]@2 ~ [d3,g4,b4,d5]@7 ~@10 [c4,d4,f#4,a4,f#5]@25 ~@2 [g2,a5,b5] g3 ~ c6@2 ~ [b3,d4,g4,g5,d6] ~@2 b5 ~ [a2,g5] ~@2 f#5@2 ~ [d4,a4,e5] ~@2 f#5 ~ [a5,b5]@3 c6@2 ~ d6@3 b5 ~ [d2,d3,d5,g5] ~ f#5@2 ~ [f#4,c5,e5,a5]@3 f#5 ~ [f4,g5] [g3,b3,d4] ~ c6@2 ~ [g2,g3,f5] ~ b5@2 ~ [c2,c3] ~ [a5,b5] ~ e4 [g3,c4,a5] ~ [g5,c6] ~ [f#3,a3,c4,d4,d6] ~@2 e5@2 ~@3 c5@2 ~@2 [g1,g2] ~@2 a4@4 [d3,g3,b3,d4,g4]@6, ~@12 [g4,b4,d5,g5]@11 ~@18 [f#4,c5,e5,f#5]@5 ~@12 [g4,d5,e5,g5]@16 g#4@5 ~@24 f#4 a4 c5@29 ~@35 [c5,a5]@4 ~@17 [e5,c6]@4 ~@16 b4@8 ~@6, ~@15 b2@8 ~@12 [c3,c4,g4,g5]@11 ~@6 g2@2 ~@12 [a2,a3]@8 ~@12 [b2,b3]@5 ~@8 d2@2 d3@33 ~@40 [c4,d4] ~@49, ~@17 d3@5 ~@7 g3 ~@34 c#5@11 [f4,b4,d5,f5]@5 ~@3 [e4,a4,c5,e5]@8 ~ d4 ~@9 [c4,d4]@5 d5@27 ~@13 c6@5 ~ c6@3 ~@8 g5 ~@14 b5@3 ~@3 d6@4 ~@6 b5@2 ~@14 g5@8 ~@5, ~@69 [b2,b3]@5 ~@6 [c3,c4]@8 ~@12 a2@34 ~@65 [d3,f#5]@3 ~@3 [d2,d3,d5,f#5]@5 ~@14]/7", // G D7 G B G C A B …
  AI: "[~ [g2,g3] ~@2 c6@3 [d4,g4,b4,g5] ~@2 b5@2 ~ [a2,a3] ~@4 [c4,d4,f#4,a4,e5,c6]@3 f#5 ~@2 [g2,g3] ~@6 b5@2 ~ [d2,d3,d5] ~@7 f#5@2 ~ [g2,g3] ~ c6@2 ~ [d4,f4] ~ b5@2 ~ [g3,c4,e4] ~ [a5,b5]@2 ~ [c2,a5,b5] ~ [g5,c6] ~, ~ [a5,b5]@6 d6@3 ~@3 g5@9 ~@2 a5@10 g5@10 ~ [g5,b5]@4 ~@15, ~@13 c6@5 ~@6 b5@5 [b3,d4,g4,g5,d6]@5 ~@3 f#5@5 ~@8 f5@2 ~@3 [e5,c6]@5 ~@4, ~@15 f#5@5 ~@6 c6@7 ~ [c5,a5]@5 [f#4,c5,a5]@5 ~@20, ~@20 [c4,e5]@2 ~@3 [b3,d6]@2 ~@3 c3@2]/2", // G A D7 G D G Dm C …
  AJ: "~ d2 ~@2 d5@2 ~@3 f#5@2 [g2,b4]@2 ~@3 [d3,g3,b3,g5,b5]@3 d6@2 [g2,g3,b5,g6] ~@5 [b3,g4,b4,d5,g5]@4 ~, ~ d6@10 ~@21, ~ [d3,f#5]@5 [d3,a3,c4,d5,e5]@5 g1 ~@20, ~@7 f5@4 g5@5 ~@3 a5 ~@12, ~@4 c5 ~@2 [d5,a5]@3 ~@2 d4@3 ~", // G D Am D5
  AK: "a2 ~@5 [c4,d4]@2 a4@2 ~ [g2,b4,d5] ~@4 [b3,g4,g5,b5,g6]@5 ~ d2 ~@5 e6@2 ~ g2, [a3,c5,d5,g5]@8 ~@3 g3@2 d4@8 ~@4 f#6@5 d6@2, ~@5 f#5@3 ~@3 g5@5 ~@6 [a5,g6]@8 ~@2, ~@14 g3@8 d3@5 [d3,c4]@3 ~@2", // Csus2 G Em Am7 A7 D7
  AL: "[d3 ~@2 c6@2 b2 d4@2 ~ c3 ~@8 c6@2 ~@3 g5@2 ~ c4 ~ e5 ~@7 [g5,b5]@2 d6@2 [g2,g3] [b5,g6] ~@4 [b3,g4,b4,d5,g5]@5 a2 ~@7 a4@2 ~@2 g3@2 ~@4 [g3,b3,d4,g4,b4]@10 ~@3 [e2,e3]@4 ~@12 d5@4 ~@9 [c#4,e4,g4,b4,g5]@27 ~@9 c5@2 ~ b2 b4 ~@5 [a2,a3] b4@2, ~ [b3,b5,f6]@4 g3@3 b5@2 g3@4 [a2,e6]@6 ~ [d3,g3,b3,d4,a5,b5,c6]@4 ~ [d3,f#3,f#5,d6]@4 [g2,d3]@2 ~@30 d3@2 ~@26 [e3,g3,a3,a4]@20 b5@27 ~@19 c5@2 ~@2, ~@6 [d6,f6]@4 ~ [e4,c6,f6]@9 ~@11 g5@5 ~@2 a5 ~@23 [d5,g5]@17 ~@11 c#5@12 c#5@36 ~@6 [d3,g#3,b3,d4,f4,g#4,b4]@6 ~@4 [c3,c4,e4,c5]@2 ~@4, ~@15 g3@4 ~@14 [d5,a5]@6 ~@18 [c4,d4,f#5]@5 b4@7 ~@21 [c#4,e4,g4]@12 e5@2 d5@34 ~@11 [b3,f4,d5]@2 ~@9, ~@16 [c4,d6]@4 ~@11 [b3,b4]@8 ~@4 [g3,d4]@7 ~ [a3,c5,d5,g5]@10 ~@2 g2 ~@34 b4@6 f#5@2 [e5,g5]@2 a5 f#5@29 ~@17 d5@3 ~@2]/5", // G Em G E C#m7b5 A Bdim A5 …
  AM: "[~ [d3,g3,b3,d4,g4,d5] ~@3 [d2,a2,d3,d4] ~@5 g1@2 ~@13 [b3,g4,f7,g7]@64 ~@166, c5@2 ~@3 c4@2 ~@3 g3@9 [a#4,b4,c5]@4 [e6,f6,g6]@64 ~@169, ~@5 [b3,d4]@4 g#4@2 [c6,d6]@2 d4@115, ~@10 g4@7 f#4@4 [g5,a5,b5]@4 [c7,d7,e7]@64 ~@167, ~@10 g2 d2@9 [d5,e5,f5]@4 [a6,b6]@64 ~@168]/8", // G D5 G7 Em Bm Csus2 G C …
})).s("gm_piano").gain(0.56)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  A B C D@2 E F@2 G H I J@2 K ~ L M N O@2 P ~ Q ~ R S T ~ U ~ V W X ~@2 Y Z@3 AA AB AC AD@3 AE@2 ~ AF ~@3 AG ~ AH AI ~@6
  AJ@2 ~ AK AL AM AN AO ~@3 AP AQ@3 ~@6
>`.pickRestart({
  A: "a4 ~@5 g4 ~@5 a4 ~@2 g4 ~ f#4 ~ d5 ~ c5@2 a4 ~@5 g4 ~@2", B: "b4 ~@2 a4@3 f#4 ~@25", C: "~@31 c5",
  D: "[~@2 [g4,d5] ~@2 b4 ~@2 c5@3 g4 ~ f#4@3 d5 ~@2 a4 ~@5 [g4,d5] ~@7 f#4 ~@19 f#4 ~@2 c5@2 f#4 ~@2 e4 ~@2, ~@8 a4 ~@21 a4@5 ~@29]/2", // G5
  E: "~@14 a3 ~@10 g2 ~@5 d3",
  F: "[b3 ~@5 a2 [c4,g4] ~@5 [d3,a3] ~@3 a4@2 [g2,d3,b3,g4] ~@5 [b2,g3,d4] ~@5 [d3,g3]@12 ~@6 [b2,f4] ~@6 [c3,g3] ~@7, ~@13 c4@4 ~@14 c4@6 ~@27, ~@13 f#4@2 ~@49]/2", // C5 D5 G G5 Bdim C5
  G: "~@3 [d3,b3,g4] ~@6 [d3,a3,c4,d4] ~@17 a4@2 g2 b3, ~@18 [b3,d4,g4]@13 ~, ~@19 g2@11 ~@2, ~@20 d3@11 ~", // G D7 G
  H: "~@5 [d3,b3] ~@4 a2 ~ [c4,g4] ~@4 [c4,f#4]@2 ~ a4@2 ~@2 g4 ~@7, ~@17 [d3,a3] ~@14", // G C5 Cdim D5
  I: "~@4 c4@5 ~ c4@6 ~@12 c3 ~@3, ~@4 [d3,g3,e4]@13 ~@15, ~@9 d2@8 ~@15", // Em7
  J: "[~@2 a4 ~@4 d3 ~@15 d4@11 d4@3 ~ d3 ~@10 a2@2 ~@5 c5@2 d5 c5 ~@2 g2 ~, ~@22 g4@15 ~@18 f#4@2 ~@7, ~@23 [g2,d3,b3]@15 ~@18 c4 ~@7]/2", // G
  K: "~@3 g4 b3 ~@27", L: "~@18 d3 g3 ~@4 [d3,c4,d4] ~@5 [g2,d4,g4] ~",
  M: "~@5 [b2,g3] ~@5 [d3,g3,c4,e4] ~@5 [d3,d4] ~@5 b3 ~@5 d4 ~@2, ~@17 c4@2 ~@13", N: "~@9 [g3,c4] ~@22",
  O: "[~@23 [a2,d3] ~@5 [d3,c4]@5 ~@6 [d3,b3] ~@5 [d2,d3] ~@5 [a3,c4]@4 d3 ~@7]/2", P: "~@14 g3 ~@4 f#3@2 ~@4 d3 ~@6",
  Q: "~@14 d3@2 ~ d3 ~@14, ~@13 [a3,c4]@2 ~@17", R: "~ [a4,c5] ~@19 f#3@2 ~@2 c5 [g2,d3] ~@5",
  S: "g3@2 ~@5 [a3,c5]@6 [d3,a3] ~@3 g2 ~@11 g3@3", T: "~@2 f#3 ~@21 c3 ~@7", U: "~@21 b3@3 ~@8",
  V: "~@20 e5@6 ~ [f#4,e5]@5, ~@20 c5 ~@11", W: "~@7 g2 ~@5 e5@9 ~@2 f4 d5 ~ c3 ~@2 [f4,g#4,b4,d5] ~",
  X: "~@4 a4@6 a4 ~@21", Y: "~@23 a4@5 ~@4",
  Z: "[~@22 [g2,a4]@2 ~ c5 ~@2 g4@3 b4@2 ~ [a2,d3,g4,c5] ~@5 c5@2 d5@2 ~ c5 [g2,d3] ~ c5 ~@2 g4@4 ~@2 [d2,d3] ~@6 c4@4 ~ g4@2 ~@4 f4 ~@5 [c3,g3,e4] ~@2 c5 ~ a4@3 ~@4 d4 ~@2, ~@22 b4 ~@5 d5 ~@11 f#4@5 ~ a4@2 ~@3 d5 ~@5 a4@11 ~@28, ~@57 g4@4 ~@2 f#4@5 ~@18 g4 ~@9]/3", // Gsus2 Am7 G5 D C
  AA: "~@3 [d2,d3,c4]@8 ~ [g1,g2]@4 ~@6 a4@2 ~@2 d3@2 c5@3 [d4,d5], ~@25 g2@4 ~@3", // D7 G D
  AB: "d3 ~@5 [a2,d3]@4 ~ [d4,c5] ~ d5@2 c5 ~ g2 ~@2 c5@2 ~ [d3,d4] ~@5 d3 ~@2, ~@5 c5@4 ~@2 f#4@6 a4@6 d5@3 ~@6", // D5 D7 D
  AC: "~@3 c4 ~@5 [g2,d3] ~@4 g3 b2 ~@3 c3 g3 ~@11", // G5
  AD: "[~@7 [d2,d3]@3 ~@34 g3@6 ~@18 [b2,g3]@6 ~ d3 ~@11 g2@9, ~@6 [a3,c4,d4]@3 ~@7 [g2,g3,b3,g4]@19 [g2,d3,b3]@16 ~@8 a4@5 ~@12 e4@15 ~@5, ~@17 g1@17 ~@16 [a2,d3,c4]@12 [g2,d3,b3]@13 g3@2 ~@3 d2@11 ~@5, ~@30 a4@21 ~@5 [a3,f#4]@9 ~@10 c4@16 ~@5, ~@83 [d4,f#4]@8 ~@5]/3", // D Em D7 G D7 G D
  AE: "[~ [b2,g4]@6 c3@3 ~@3 d4@6 ~ d3@7 ~@7 g2@18 ~@12, ~@11 a2@9 ~@8 [d3,a3,a4]@12 ~@24]/2", // Em D5
  AF: "~@9 d4 ~@10 c4 ~@11", AG: "~@3 d3@2 ~@14 a3@3 [f#5,a#5] ~@9", AH: "~@6 b3 ~@25", AI: "~@2 a#4@5 ~@25",
  AJ: "[~@20 a3 ~@4 c4@3 ~@3 g3@3 ~@2 [b3,d4,g4] ~@10 a3@3 ~@14, ~@31 g2 ~@32]/2", AK: "~@7 b3 ~@24",
  AL: "~@8 [a3,d4]@4 c#3 ~@6 g3@3 ~@10", AM: "~@17 c#6@3 ~@4 g3@6 ~@2", AN: "~@17 a5@4 ~@7 a3@3 ~", AO: "~@26 a3@3 ~@3",
  AP: "~@24 g#4 ~@7", AQ: "[~@19 a4@64 ~@13, ~@9 g4@4 ~@35]/3",
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)

More by Percy Grainger