Strudelify

6 Studies in English Folksong

Ralph Vaughan Williams

KeyA majorTempo80 bpm
0:00/0:00
// 6 Studies in English Folksong — Ralph Vaughan Williams
// 80 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: metre changes (1/4 at bar 1, 3/4 at bar 2, 4/4 at bar 4, 3/4 at bar 6, ...) are rendered on a constant 3/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/1024526; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 218 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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 · "Pianoforte"
const piano = note(`<
  ~@2 A@3 ~ B@3 ~@2 C D@2 E F G H@5 I@2 ~@9 J K L M@2 ~ N@2 O P Q R S T U V W@4 X@2 Y@6 Z@3 ~@3 AA AB AC AD AE AF@5 AG@2
  AH AI AJ AK@2 AL@2 AM@2 AN AO AP@2 AQ@4 AR AS AT@4 ~ AU@4 AV@7 AW@4 AX@8 AY@8 AZ@4 BA@8 ~ BB@6 BC@6 BD@3 BE@3 BF@3
  BG@2 BH@5 ~@13 BI@2 BJ@2 ~@6 BK@2 BL@2 BM@2 BN@2 BO@6 BP@4 ~@2
>`.pickRestart({
  A: "[~@49 g3@6 [b3,g4]@6 ~ [d4,b4]@6 d5@6 ~ e5@6 g5@6 ~ b5@6 ~@2, ~@29 e2@26 ~@41, ~@36 b2@19 ~@41, ~@42 e3@13 ~@13 e4@25 ~@3]/3", // Em G
  B: "[~@50 a#3@6 ~ [d4,g4]@6 [e4,a#4]@6 d5@6 ~ e5@6 g5@6 ~ a#5@6 ~, ~@31 g2@26 ~@39, ~@37 b2@19 ~@40, ~@44 g3@13 ~@12 g4@25 ~@2]/3", // G5 Edim
  C: "~@13 d3@6 e3@6 ~ [d3,g3]@6", D: "[a3@6 ~ a#3@6 g3@6 ~@7 e4@6 ~@32, e3@13 d4@13 ~@38, ~@20 a#3@25 ~@19]/2",
  E: "~@20 [g4,b4,e5]@6 ~ [a4,c#5,f#5]@5", F: "~ [b4,d5,g5]@6 ~ [c#5,e5,a5]@6 [d5,f#5,b5]@12 ~ [c#5,e5,a5]@5",
  G: "~@2 [b4,d5,g5]@6 [c#5,e5,a5]@13 [b4,d5,g5]@6 [g4,b4,e5]@5", // G A G Em
  H: "[~@21 g3@6 ~@7 [a4,c#5,f#5]@6 ~ [e2,b4,d5,g5]@6 [b2,c#5,e5,a5]@6 ~ e3@6 g3@6 ~ [g3,b5,d6,g6]@12 ~ g2@6 d3@6 [d6,f#6] [a#5,e6] ~@5 a3@6 a#3@6 ~ d4@6 e4@6 ~ g4@6 a4@6 ~ a#4@6 b5@6 ~ g5@6 ~@3, ~@2 [e2,d5,g5]@39 ~@119, ~@2 b4@13 e3@26 ~@51 g3@6 ~@62, ~@8 b2@32 ~@54 d6@10 ~ g6@13 [e5,e6]@13 [d5,c#6]@13 b4@12 ~@4, ~@15 [g4,b4,e5]@13 [g3,g4,b4,e5]@13 ~@13 [d5,f#5,b5]@13 ~@13 [a#5,e6]@13 ~ g5@23 ~ a#5@26 ~@16]/5", // F#m Em7 A G D A#dim Em7 E …
  I: "[~@10 d5@13 c#5@13 ~@28]/2", J: "~@27 b3@5, ~ e2@31, ~@7 b2@25, ~@7 e3@9, ~@5 g3@3", K: "~@14 g4@6 b4@6 ~ d5@5",
  L: "~ e5@6 ~ g5@6 b5@6 ~ d6@11", M: "[~ e6@25 ~@6]/2",
  N: "[~@11 d#5@5 a#5@5 a#5@11 g5@4 f5@3 d#5@4 g#5@5 g#5@5 ~@11, g3@41 ~@2 [g3,c4,d#4]@21]/2", O: "[g#3,c4]@21 ~@11",
  P: "~@11 d#5@5 [d5,d#5]@5 [c5,g#5]@5 ~ [a#4,g5]@5", // D#maj7 Fm D#
  Q: "[g#4,f5]@5 [g4,d#5]@5 ~ [c5,g#5]@5 [a#4,g5]@5 [g#4,f5]@5 ~ [g4,d#5]@5", // C# Cm Fm D# C# Cm
  R: "[c5,g#5]@5 [a#4,g5]@5 ~ [g#4,c5]@5 [a#4,d#5]@5 [c5,g#5]@5 ~ [d5,a#5]@5", // Fm D# G# D#5 Fm Gm
  S: "[g#5,c6]@5 [g5,a#5]@5 ~ [g5,a#5]@5 [f5,g#5]@5 [g5,a#5]@5 ~ [f5,g#5]@5, d#5@10 ~ d5@20 ~", // G# Gm Fm Gm Fm
  T: "[d#5,g5]@5 [d5,f5]@5 ~ [c5,d#5]@5 [d5,f5]@5 [d#5,g5]@5 ~ [d5,f5]@5, c5@10 ~ a#4@20 ~", // D# Dm Cm Dm D# Dm
  U: "[g#4,c5,d#5]@5 [a#4,d5,f5]@5 ~ [d#5,g5]@5 [d5,f5]@5 [d#5,g5]@5 ~ [f5,g#5]@5, ~@11 c5@20 ~", // G# A# D# Dm D# Fm
  V: "[g5,a#5]@5 [f5,g#5]@5 ~ [f5,g#5]@5 [d#5,g5]@5 [d#5,g5]@5 ~ [d5,f5]@5, c5@11 a#4@20 ~", // Gm Fm D# Dm
  W: "[[f5,g#5]@5 [d#5,g5]@5 ~ [d#5,g5]@5 [d5,f5]@5 a#4@5 ~ d#5@5 d#5@5 [g#4,f5]@5 ~ d#5@5 [f4,f5]@5 g5@11 [f4,f5]@4 [d#4,d#5]@3 [d4,d5]@4 c5@5 [a#3,a#4]@5 [c4,c5]@10 ~ [c4,c5]@4 [d4,d5]@3 [d#4,d#5]@4 [f4,f5]@5 [g4,g5]@5 [f4,f5]@11, a#3@20 ~ [g#2,d#3,c4]@20 ~@2 [d#2,a#2,g3]@30 ~@2 [g#1,g2,d#3,d#4]@30 ~@2 [f2,c3,g#3,g#4]@21, ~@21 g4@16 ~@6 g4@10 g4@21 ~@54]/4", // Fm D# Dm C# F D# D A# …
  X: "[[g2,d#3,c4,a#4]@10 ~ [a#3,a#4]@5 [a#3,a#4]@5 ~@16 [a#3,a#4]@5 ~ [g2,c3,d#3,a#3,d#4,a#4]@20 ~, ~@11 [a#2,f3,d4]@20 ~ [g#2,d#3,c4,d#4]@10 ~@22, ~@21 [a#3,a#4]@15 ~@28]/2", // Cm7 A# Cm7 A# G# A#
  Y: "[[g2,a#2,g3,d#4,g4,d#5]@10 ~ d#5@5 d5@5 [c2,g2,d#3,d#4,c5]@20 ~@2 [f2,c3,c4,g#4]@10 [g2,d3,d4,a#4]@20 ~@18 d#5@5 ~@11 [g#2,d#3,c4]@10 ~@59 c4@5 ~@11, ~@11 [f2,c3,g#3,f4]@11 ~@53 [g#3,c5]@42 c4@38 g#2@27 ~@10, ~@75 [g#2,d#3,c4]@26 f5@48 d#2@11 c3@5 d#3@6 g#3@11 ~@10, ~@75 d#4@21 d#5@11 ~@10 d#5@64 ~@11, ~@85 a#4@59 g#1@37 ~@11]/6", // D# Cm Fm Gm G# Fm G#
  Z: "[[d#2,g3,a#3]@21 [g3,a#3]@64 ~@11]/3", AA: "~@21 [f3,d4]@11", AB: "[e3,c4]@11 [c3,a3]@10 [d3,f4]@11",
  AC: "[a2,c4]@11 [d3,a#3]@10 c4@5 ~ d4@5, ~@21 e3@11", AD: "[a3,e4]@11 g3@5 f3@5 [e3,c4]@11, ~@11 d4@10 ~@11",
  AE: "[g2,a#3,d4]@5 [a2,c4,e4]@5 ~ [d4,f4]@5 [e4,g4]@5 [f4,a4]@5 ~ [e4,g4]@5, ~@11 a#2@10 f2@11", // Gm Am Dm Em F Em
  AF: "[~@16 a2@5 d3@5 ~ e3@5 f3@5 g3@5 ~ [a3,d4,f4]@10 [g3,e4]@11 [f3,d4]@11 [g3,e4]@10 [a3,f4]@11 [a#3,g4]@11 [a3,f4]@10 [g3,e4]@11 [f3,d4]@11 [g3,e4]@10 [f3,d4]@11, d2@41 ~@119, [d4,f4]@30 ~@2 [a3,d4]@11 d3@62 ~@2 d3@32 d3@21]/5", // Dm C Dm C Dm D# Dm C …
  AG: "[[a#2,e3,d4,g4]@10 ~@17 e3@5 f3@5 g3@5 ~ [a3,f4]@5 [g3,e4]@5 [d3,f3,d4]@11, ~@11 [d3,f4,a4]@32 d3@10 ~@11]/2", // Em7b5 Dm C Dm
  AH: "e4@5 d4@5 ~ c4@5 d4@5 e4@5 ~ c4@5, c3@11 f3@10 a3@10 ~", AI: "[d3,a3,f4]@11 [g3,a#3,g4]@10 [d3,a3,f4]@11",
  AJ: "[e3,g4]@5 [f3,a4]@5 ~ [c4,e4]@10 f4@5 ~ [g3,e4]@5, c4@11 a3@16 ~@5, ~@21 c4@11", // Em F C
  AK: "[d4@5 c4@5 ~ e4@5 d4@5 c4@16 d4@5 ~@6 b2@5 c3@5 ~ d3@5, f3@11 [c3,g3]@10 a2@27 ~@5 c4@10 ~, ~@21 e3@21 ~ e4@21]/2", // C5
  AL: "[[e3,b3]@11 [a2,c4]@10 [d3,f4]@11 ~@5 g4@5 ~ d4@5 c4@5 d4@5 ~ e4@5, ~@21 a4@16 ~@16 [g2,a#4]@11, ~@32 [a#2,e4]@11 [a2,g4]@11 ~@10]/2", // E5 Am Dm Gm A#dim A7
  AM: "[f4@5 e4@5 ~ [g2,d4,g4]@5 [a2,c4,f4]@5 a#2@5 ~ c3@5 a#2@5 [a2,c5]@5 ~ c5@5 a#4@5 a4@5 ~ g4@5, [f2,a4]@11 ~@10 d4@16 ~@6 [g2,f4]@10 [a2,e4]@11]/2", // G5 F Am F G7 A5
  AN: "[a3,f4]@5 [g3,e4]@5 ~ [f3,d4]@5 [g3,e4]@5 f4@5 ~ a4@5, d3, ~@21 a3@10 ~", // Dm C Dm C
  AO: "[f4,d5]@5 [g4,e5]@5 ~ [d4,a4,f5]@10 [c4,c5,e5,g5]@11, d4@11 ~@21", // Dm C Dm C
  AP: "[f4@5 g4@5 ~ c6@5 a5@5 f5@5 ~ a#5@5 [c5,a5]@5 [a#4,g5]@5 ~ [a4,d5,f5,d6]@10 [g4,e5,c6]@5 ~ [f4,d5,a5]@5, [c5,f5,a5]@11 [a4,c5,e5]@10 d5@21 ~@22, ~@21 d6@11 d6@11 ~@21]/2", // F D# Dm C Dm F Am
  AQ: "[[e5,c6]@10 ~@6 g4@5 [f4,a4,a5]@11 [d4,a#4,g5]@10 ~ [f4,c5,f5,a5]@30 ~@2 [d4,f4,d5]@10 d5@11 ~@21 a#4@10 ~, c5@21 d5@20 ~@55 c5@21 ~@11, a4@16 ~@69 [e4,g4]@20 ~@2 d4@20 ~, ~@11 [f5,c6]@10 ~@107]/4", // C F Gm F Dm Em F5
  AR: "[c4,a4]@11 [a#3,d5]@10 e5@10 ~", AS: "~@5 c5@5 ~ g2@16 [a2,a#4]@5, ~@11 d4@21",
  AT: "[c4@11 ~@10 e4@20 ~@2 [d2,a2,d3,a3]@66 ~@19]/4", // D5
  AU: "[~@53 a4@9 ~@34 [a3,d5]@26 ~@6, ~@14 [e3,g3,a3,c4,c5]@17 d2@30 ~@3, ~@62 f#4@25 f#3@34 ~@7, ~@62 d5@17 d3@43 ~@6, ~@70 a2@51 ~@7]/4", // D5 Am7
  AV: "[~@28 a4@8 ~@51 f#4@17 ~@26 a4@9 ~@25 f#3@9 ~@25 a4@9 d5@17, ~@2 [e3,g3,a3,c4,c5]@34 [d2,d5]@34 a3@9 d4@26 ~@119, ~@36 f#4@26 f#3@43 [e3,g3,a3,c4,c5]@34 ~@17 d3@17 [e3,c5]@34 ~@17, ~@45 a2@60 ~@34 [d2,f#4,d5]@34 ~@51, ~@53 d3@51 ~@43 a2@26 ~@51]/7", // Am7 D Am7 C D
  AW: "[~@77 a5@8 ~@26 [f#3,a4]@8 [a2,g4,e5]@9, ~@17 [e3,g3,a3,c4]@34 c5@9 e5@26 ~@42, ~@17 c5@26 a4@43 ~@16 d3@17 ~@9, ~@26 e4@60 ~@8 a2@25 ~@9, ~@34 g4@34 g5@17 [d2,f#5,d6]@34 ~@9]/4", // F#m A7 Am7 D
  AX: "[~@51 f#3@9 [a2,g4,e5]@34 ~@62 c6@6 ~@29 d4@5 ~@26 b5@8 d2@6 a2@6 d3@5 f#3@6 a3@3, ~@26 [d2,f#4,d5]@34 ~@34 f2@23 c4@46 ~@11 d3@23 ~@8 g5@26 ~@25, ~@34 a2@26 ~@34 a4@11 f3@17 d4@6 f4@6 a4@5 c5@6 f5@6 a5@11 ~@17 f#3@6 a3@11 [e3,g3,a3,c4,a5]@34 ~@26, ~@43 d3@17 ~@34 f5@17 a3@51 [d2,f#5,d6]@34 ~@60, ~@100 c3@63 ~@5 a2@28 ~@17 c6@17 ~@26]/8", // A7 D Am7 D
  AY: "[~@26 [e3,g3,a3]@32 ~@10 a4@8 ~@18 c5@8 d5@8 ~@29 c4@6 ~@17 [b4,b5]@17 ~@63 e2@5 ~@6 c2@3, ~@60 [e3,g3,a3]@32 ~@2 [e3,g3,a3,c4]@16 ~ [c2,g4,c5,g5]@26 e4@43 ~@8 g5@37 g3@23 ~@8, ~@111 e5@17 e3@6 g3@46 ~@11 e3@5 e5@34 e3@6 b2@3 d5@9 ~@8, ~@117 g2@63 ~@5 b2@17 g3@6 b3@5 [e4,g4]@34 g5@9, ~@122 c3@15 e5@8 [a2,e3,c4,a4,e5,a5]@34 [e2,b4,a5]@34 d5@6 b3@28 ~@9]/8", // A7 B A7 Am7 C5 Em Am Esus4
  AZ: "[~@3 g2@6 c3@5 ~@6 g3@6 e5@17 c6@8 b5@8 ~@63 c6@6, ~@14 e3@6 ~@6 c4@32 ~@2 [f#2,c5,f5]@22 c4@6 f4@6 a4@17 a5@6 b5@11, ~@17 f#5@8 ~@35 a5@17 a3@51, ~@65 c3@63, ~@71 f3@57]/4", // F
  BA: "[~@11 d3@6 ~@43 d5@8 ~@86 [c5,e5]@34 [c5,e5]@64 ~@4, [d2,f5,d6]@26 b5@42 c6@17 [c4,d6]@64 ~@107, d5@23 a3@46 ~@5 e3@20 c6@64 ~@98, ~@6 a2@22 d4@6 a5@9 g5@26 ~@11 a3@17 a4@64 ~@95, ~@17 [d3,c6]@34 e5@17 a2@23 e4@64 ~@101]/8", // C Dm Csus2 D7
  BB: "[~@28 c4@8 ~@103 c4@51 ~@2, ~ e3@17 d2@17 c4@30 g3@30 ~, ~@11 g3@26 ~@8 a2@60 [d2,e4,g4]@64 ~@23, ~@19 a3@17 ~@17 d3@60 a2@64 ~@15, ~@31 g3@30 d3@32 ~@3]/6", // Em7
  BC: "[~@25 d6@16 ~@7, ~@6 d2@35 a3@34 d5@64 ~@53, ~@15 a2@34 d4@34 f#5@64 ~@45, ~@23 d3@35 f#4@34 a5@64 ~@36, ~@16 f#3@17 a4@32 ~@31]/6",
  BD: "[~@14 g2@9 b3@9 d3@9 ~ c2@9 e3@9 ~ g2@9 d3@9 ~ g2@9 [e3,c4,g4,a4]@7, ~@14 [d4,g4,b4]@28 [e4,g4,c5]@28 [d4,g4,b4]@19 ~@7]/3", // Am7 G C G
  BE: "[~@3 d3@9 g2@9 ~ [e3,e4,g4,b4]@9 d3@9 ~ g2@9 [c3,e4,g4,b4]@9 ~ d3@9 g2@9 ~ [c3,e4,g4,c5]@9 [g2,d4,g4,b4]@8, ~@3 [d4,g4,b4]@18 ~@10 [d4,g4,b4]@19 ~@10 [d4,g4,b4]@19 ~@17]/3", // Em Cmaj7 C G
  BF: "[~@2 [a2,c4,e4,a4]@9 [e3,b3,e4,g4]@9 ~ a2@9 c3@9 ~ [e3,c4,e4,g4]@9 d3@9 ~ g2@9 [e3,e4,g4,b4]@9 ~ [b2,d4,f#4]@9 [e3,e4,g4]@9, ~@21 [c4,e4,a4]@18 ~@10 [d4,g4,b4]@19 ~@10 b4@18]/3", // Am Em C Em Bm Em Am G
  BG: "[[a2,e4,g4,c5]@9 ~ [b2,d4,f#4,b4]@9 [c3,c4,e4,a4]@9 ~ [a2,c4,e4,g4]@9 e2@9 ~ b2@9 [c2,g2,e3,c4,e4,g4]@7, ~@38 [b3,e4,g4]@19 ~@7]/2", // Am7 Bm Am Am7 C Em
  BH: "[~@3 g2@9 b3@9 ~ d3@9 c2@9 ~ e3@9 g2@9 ~ d3@9 g2@9 ~ [c3,e4,g4,a4]@9 d3@9 ~ g2@9 [c3,e4,g4,a4]@9 ~ d3@9 g2@9 ~ [c3,a3,e4,g4]@9 ~@15, ~@3 [d4,g4,b4]@27 ~ [c4,g4,a4]@27 ~@2 [d4,g4,b4]@18 ~@10 [d4,g4,b4]@19 ~@10 [b3,d4,g4]@19 ~@24]/5", // Am7 G Am7 G
  BI: "[~@15 [e3,g3,g4,c5]@9 d5@5 b4@5 a4@4 b4@5 d5@5 e5@4 ~ d5@4 b4@7, ~@24 [g2,d3,b3]@9 ~@10 [c2,g2,e3]@9 ~ [e2,b2,g3]@9 ~@2]/2", // C G C Em
  BJ: "[~@3 a4@5 g5@4 f#5@4 ~ e5@3 d5@3 b4@3 ~ [g3,a4]@14 [e3,g4,b4]@5 [g3,e4,a4]@14 ~@4, ~@8 [a2,e3,c4]@9 [e2,b2,g3]@9 ~ c3@18 ~ c3@18]/2", // Gsus2 Em A7 Am Em
  BK: "[~@31 [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~@2 [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2]/2", // Am
  BL: "[~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~@2 [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~ [a4,c5,e5]@2 ~@9]/2", // Am
  BM: "[~@13 d6@2 ~ e6@2 ~ c6@2 ~ a5 ~ g5 a5@2 ~ c6 ~ d6 e6@2 ~ c6@2 ~ d6@2 ~ e6@2 ~ a5@2 b5 ~ [g4,c6]@6 ~ d6@2 e6@2 ~ c6@2 ~ d6@2, ~@16 g4@6 g4@6 g4@6 g4@6 g4@6 ~@7 g4@6 g4@5, ~@42 c6@2 ~@9 c6@2 ~@9]/2", // C5
  BN: "[~ e6@2 ~@2 a5@2 ~ e5@2 g5@2 ~ a5@2 ~ g5@2 ~ e5@2 ~ e5@2 ~ g4@3 a5@2 f4 c6@2 [d4,d6] a3@3 [a2,e3]@3 ~@3 [g2,d3,g3]@3 ~@4 [a2,e3,a3]@3 ~@3 [f2,c3,f3,f5,a5,d6]@3 ~@3 [c2,g2,c3]@2, ~ g4@6 g4@6 g4@6 g4@6 ~@6 e4 ~@32, ~@4 c6@2 ~ g5@2 ~@16 g5@2 ~@3 b5@2 ~@2 [a5,c6,e6]@6 [b5,d6,g6]@6 ~ [a5,c6,e6]@9 ~@3 [e5,g5,c6]@5]/2", // D A5 G5 A5 Dm7 C5 Am G …
  BO: "[~@4 [g2,d3,g3]@3 ~@3 [f2,c3,f3]@3 ~@3 [c2,g2,c3,c5,e5,g5]@3 ~@3 [e2,b2,e3]@3 ~@3 [d2,a2,d3]@3 [f5,a5,c6]@3 [g2,d3,b3,b5]@3 c6@3 [f2,c3,a3,a5]@3 b5@2 ~@2 [e2,b2,g3,g5]@3 g5@2 ~ [c2,g2,e3,e5]@3 e5@2 ~ [e2,e3,c5]@3 [a2,e3,a3]@2 ~ [b2,b3]@2 ~ [a2,a3]@2 ~ [b2,b3]@3 [a2,e3,a3]@2 ~ [b2,b3]@2 ~ [a2,a3]@2 ~ [b2,b3,g4,b4,d5]@3 [a2,e3,a3]@2 ~ [b2,b3]@2 ~ [a2,a3]@2 ~ [b2,b3]@2 ~ [a2,e3]@2 ~ b2@2 ~ a2@2 ~ [b2,b3,e4,a4]@3 ~ [a2,e3]@2 ~ b2@2 ~ a2@2 ~ b2@2 ~ a3@2 ~ b3@2 ~ a3@2 ~ [b3,e4,a4,c5]@3 a3@2 ~ b3@2 ~ a3@2 ~ b3@2 ~ a3@2 ~ b3@2 ~ a3@2 ~ [b3,b4,e5,g5]@3 a3@2 ~ b3@2 ~ a3@2 ~ [b3,c5,f5,a5]@3 a3@2 ~@2 b3@2 ~@2 b3@2 ~ d4 ~ e4 f#4 ~ e4 f#4 ~ e4 f#4, ~ [g5,b5,d6]@6 [c5,f5,a5]@9 ~@3 [g4,b4,e5]@6 [c5,f5,a5]@6 ~@31 a4@6 [b4,d5,g5]@6 [a4,c5,e5]@9 ~@3 [a4,c5,e5]@6 [g4,b4,d5]@6 [c4,f4,a4]@9 ~@4 [g3,c4,e4]@6 [c4,f4,a4]@6 [f#4,b4,d5]@9 ~@3 [d4,g4,b4]@6 [g4,c5,e5]@6 [c5,f5,a5]@9 ~@3 [d5,g5,b5]@9 ~@3 [e5,a5,c6]@7 a3@2 ~ [c4,f#5,b5,d6]@3 [g5,c6,e6]@3 d6@3 e6@2]/6", // G5 F5 C E5 D5 F G F …
  BP: "[~ e4 f#4 ~ e4 f#4 ~ [e4,a5] [f#4,g5] ~ e4 f#4 ~ [e4,c6] ~ [f#4,d6] e6@2 f#4 e6@2 f#4 d6@2 f#4 e6@2 f#4 a5@2 [f#4,b5] e4 ~ f#4 e4 ~ f#4 c6@2 f#4 [e4,e6]@2 ~ [e4,c6]@2 f#4@2 ~ f#4@2 ~ f#4@2 ~ [f#4,a5]@2 ~ f#4@2 ~ f#4@2 ~ f#4@2 ~ [f#4,e5]@2 ~ f#4@2 ~ f#4@2 ~ f#4@2 e4@2 [f#4,b4]@2 [e4,a4]@2 e4@2 f#4@2 e4@2 e4@12 ~@27, ~ e6@3 c6@3 ~@3 a5@3 ~@3 e4 ~@2 e4 ~@2 e4 ~@2 e4 ~ c6@2 ~@2 c6@6 ~@2 d6@2 ~@16 e5 ~ g5@8 ~@2 b4 ~ d5@8 ~@4 d5@9 ~@36, ~@28 e4 ~@8 e4 ~@4 f#4@2 ~@3 [e4,d6]@3 [e4,e6]@3 [e4,c6]@2 ~ [e4,g5]@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ [e4,d5]@2 ~ e4@2 ~ e4@2 ~@52]/4", // A5 Gmaj7 C D B5 E C F#m …
})).s("gm_piano").gain(0.25)

// chords · piano · "Pianoforte" · soft notes
const piano_soft = note(`<
  ~@4 A@2 ~@2 B@2 ~ C ~ D ~@7 E@4 ~@9 F ~@4 G@3 ~@16 H@3 I@3 ~@31 J K@2 L@4 ~ M ~@2 N ~@3 O ~ P@3 ~@2 Q@2 R@2 ~@4 S T@3
  ~@12 U@5 V@7 ~@21 W@4 X@2 Y@5 Z@4 ~@2 AA AB@2 AC@2 AD ~@5 AE ~@11 AF AG ~ AH
>`.pickRestart({
  A: "[~@15 b5@6 ~@11]/2", B: "[~@31 a#5@12 ~@21]/2", C: "~@19 d3@6 ~@7, a#1@13 ~@3, ~@6 f2@19 ~@7, ~@13 a#2@13 ~@6",
  D: "~ g4@12 ~@19", E: "[~@16 e5@13 [a4,a5]@6 ~ b4@6 d4@13 c#4@13 [b3,b4]@37 ~@23, ~@29 d5@13 b5@6 ~@80]/4",
  F: "~ d4@6 e4@6 ~@19", G: "[[c4,d#4]@41 ~@44 [a#3,d4]@10 ~, ~@53 g5@21 ~ g5@20 ~, ~@64 d#4@21 ~@11]/3",
  H: "[~@5 d#4@5 ~@11 d#4@64 ~@11, a#3@2 ~, ~@11 [d#4,d#5]@10 d#3@48 ~@27, ~ f4@4 ~, ~@21 g#2@37 ~@38]/3", // D#
  I: "[[a#2,d#3]@21 [d#2,a#2,d#3]@64 ~@11]/3", J: "~@11 f4@20 ~",
  K: "[e4@16 g4@5 g4@10 ~ [f4,d5]@5 [f3,e4]@5 ~ a#4@16 ~@5, ~@21 a3@16 ~@27]/2", // Dm Fmaj7
  L: "[a#2@11 [g2,a#3]@10 a3@10 ~ g3@10 ~ [f#3,d4]@66 ~@19, f4@21 a2@20 ~@87]/4", M: "~@11 g4@17 ~@4",
  N: "~@17 f#4@9 a4@6, ~@9 d4@17 ~@6", O: "a4@9 ~@23",
  P: "[~@13 [g3,a3,c4]@34 ~@26 f#3@9 ~@14, ~@47 [d2,f#4]@34 ~@15, ~@55 a2@26 ~@15, ~@64 d3@17 ~@15]/3", // Am7 D
  Q: "[~@23 [e3,c4]@34 ~@7]/2", R: "[~@19 a4@9 [e3,c4]@34 ~@2]/2", S: "~@6 a5@8 ~ g5@8 e5@8 ~",
  T: "[~@3 d4@5 ~@26 a4@8 ~@35 c5@8 a4@8 ~@3, d5@8 ~ c5@26 ~@8 d5@26 ~@27, ~@13 c4@16 ~ c4@16 ~@2]/3",
  U: "[~@6 [c5,e5,a5]@51 ~ a5@34 a5@64 ~@4]/5", // Am
  V: "[~@60 a4@8 d5@17 ~@52 d5@64 ~@23, ~@13 a4@17 ~@4 [e4,g4]@32 ~@46, ~@34 c5@34 ~@17 d5@51 ~@88, ~@47 a4@17 a4@32 ~@16, ~@51 c5@32 ~@29]/7", // Em
  W: "[~@17 [g2,d3,d4,g4,b4]@19 [c2,g2,e4,g4,a4]@19 [e2,b2,b3,e4,g4]@18 ~ [g2,d3,d4,g4,b4]@9 [c3,g3,e4,g4,a4]@19 [d3,g3,d4,g4,b4]@19 [e3,g3,e4,g4]@7]/4", // G Am7 Em G Am7 G Em
  X: "[~@3 [b2,f#3,b3,d4,f#4,d5]@19 [e3,g3,d4,g4,d5]@19 [a2,e3,g3,e4,g4,c5]@18 ~ [e3,g3,e4,b4]@4]/2", // Bm Em7 Am7 Em
  Y: "[~@5 [c3,g3,e4,a4]@19 [d3,b3,d4,b4]@19 [e3,c4,g4,c5]@9 ~ [b2,f#3,b3,d4,f#4,d5]@19 [e3,g3,e4,g4,d5]@19 [a2,e3,g3,e4,g4,c5]@18 ~ [e3,g3,e4,b4]@9 [c3,g3,e4,a4]@19 [d3,b3,d4,b4]@19 [e3,c4,g4,c5]@3]/5", // Am7 G C Bm Em7 Am7 Em Am7 …
  Z: "[~@6 [g2,d3,d4,g4,b4]@19 [c2,g2,e3,e4,g4,a4]@19 [e2,b2,g3,b3,e4,g4]@18 ~ [g2,d3,d4,g4,b4]@9 ~ [c3,g3,e4,a4]@19 [d3,g3,d4,b4]@19 ~@17]/4", // G Am7 Em G Am7 G
  AA: "~@7 [e3,g4,b4]", AB: "[[c3,g3,e4,a4]@9 ~ [e2,b2,g3,e4,g4,b4]@27 ~ [c2,g2,e3,e4,a4]@26]/2",
  AC: "[~@3 g3@5 a3@4 g3@5 a3@5 g3@5 a3@4 g3@5 [d2,a3]@5 g3@5 a3@4 g3@5 a3@4 ~@5, ~@3 [d2,g2,c4]@19 [b2,b3]@19 ~@23, ~@22 e2@13 ~@6 [c2,g2,e3,c4]@19 ~@4]/2", // D5 Csus2 B C
  AD: "~@5 [g1,d2,g2,d3,g3,b3]@22 ~@5", // G
  AE: "~@2 [b3,g5]@2 ~ d4@2 [g4,e6]@3 g4@6 ~@16, ~ [a3,f5]@2 ~ [c4,a5]@2 ~@26, ~@5 b5 ~@4 e6@2 ~@20", AF: "~@7 b4",
  AG: "~@2 a4@3 ~@27", AH: "~@21 [c3,c4,g4] ~@10",
})).s("gm_piano").gain(0.15)

stack(piano, piano_soft)