Strudelify

Hop-O'-My-Thumb

Billy Mayerl

KeyF minorTempo94 bpm
0:00/0:00
// Hop-O'-My-Thumb — Billy Mayerl
// 93.8 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 113 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(93.8/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"
const piano = note(`<
  A B C@5 D@4 E F@3 G H@6 I J K@3 L@2 ~@3 M@5 N@4 O@2 P@8 ~ Q@4 R S@5 T U V W X@4 Y@4 Z@4 AA AB AC AD AE@4 AF@3 AG@2 ~
  AH AI AJ@3 AK@2 AL@2 AM AN AO AP AQ@2 AR@4 ~@2
>`.pickRestart({
  A: "~@11 ab3@4 ab3", B: "g3@3 g3 f3@3 bb3@4 ab3@2 bb3@2 ab3",
  C: "[g3@2 ab3@4 g3@2 f3@6 bb3@8 c6 g5@5 ~@2 bb5 f5@5 ~@2 ab5 eb5@5 ~@2 c6 ~@7 c6 g5@2 ~ bb5@2 ~@3 ab5@2 ~ eb5@2 ~@2 g5 f5@5 ~ c6@8 c6 ~ g5@2 ~@2 bb5@2 ~@2 ab5@2 ~@2 eb5@2 ~@2 c5@4 f5@2 ~@2 ab4@2 ~@2 bb4@2 ~@2 f5@30 c5@2 eb5@6 f5@2 eb5, ~@22 c5@57 ~@6 c5@17 ~@8 eb5@2 ~@2 a4@2 ~@2 [b4,c5]@2 ~@40, ~@31 f5 ~@15 f5 ~@3 g5 ~@28]/5", // Cmaj7
  D: "[~@5 f5@2 eb5@6 eb6@8 c6@2 [db5,ab5,bb5]@6 eb5@2 [f4,ab4,db5,eb5]@6 [g4,bb4,db5,eb5]@16 [c5,g5,bb5]@8 [c4,f4,ab4]@8 g5@2 [ab4,f5]@6 [ab4,bb4]@9 ~ f5 [db5,eb5]@7 ~@10 eb4@2 eb5@2 eb5@4 ~@8 g5@5 ~ bb5, ~@88 g4@17 ~@23]/4", // Bbm7 Db Eb7 C7 Fm Db Absus2 Dbsus2
  E: "~ f5@5 ~ ab5 ~ eb5@5 c6 ~@7 c6 ~@2 g5@2 bb5@2 f5 ~@2",
  F: "[~@2 eb5@2 ~ g5@2 ~@2 f5@5 c6@8 c6 ~@3 bb5@2 ~ f5@2 ~@3 eb5@2 ~ g5@4 ~ f5@2 ~ eb5@4 ~ [a4,bb4]@2 ~@2 c5@2 ~ f5@29 c5@2 ~ eb5@5 f5@2, ~ ab5@2 ~@19 c5@17 ~@2 c5@2 ~@6 ab4@2 ~@2 b4@2 ~@41, ~@25 g5@2 ~@6 ab5@2 ~@61]/3", // Bbmaj7
  G: "eb5@3 f5 eb5@3 eb6@4 c6 [db5,ab5,bb5]@3 eb5", // Bbm7
  H: "[[f4,ab4,db5,eb5]@6 [g4,bb4,db5,eb5]@16 [c5,g5,bb5]@8 [c4,eb4,f4,ab4]@8 bb5@2 [bb4,e5,ab5]@6 [bb3,e4,ab4]@8 bb5@2 [c5,eb5,f5,ab5]@32 [a4,c5,f5]@7 [g4,bb4,eb5]@4 ~ f4@8 [a4,c5,f5]@3 [a4,c5,f5]@3 [g4,bb4,eb5]@2 [g4,bb4,eb5]@6 [f4,ab4,c5]@10 ~ a4@2 [a4,c5,f5]@6 [a4,c5,f5]@3 [g4,bb4,eb5]@3 [a4,c5,f5]@2 [g4,bb4,eb5]@6 [c4,gb4,bb4,c5]@21 [c5,c6] [bb4,bb5]@8 [ab4,ab5]@7, ~@99 [ab4,c5]@5 ~@28 [c5,f5]@2 ~@58]/6", // Db Eb7 C7 Fm7 Bbm7b5 Fm7 F Eb …
  I: "~ f4@14 [c5,c6]@2 [bb4,bb5]@3 [bb4,bb5]@4 [ab4,ab5]@8, f5@7 ~@25", // C Bb Ab
  J: "[f4,f5]@13 [c5,c6]@2 ~ [bb4,bb5]@4 [ab4,ab5]@4 [f4,f5]@4 [eb4,eb5]@4", // F C Bb Ab F Eb
  K: "[[f4,b4,f5]@8 [f4,f5]@9 g4@3 ~ f4@3 ~ f4@3 ~ e4@3 ~ e4@7 ~ eb4@8 [a4,c5,f5]@5 [g4,bb4,eb5]@6 [f4,ab4,c5]@7 ~ a4@2 [a4,c5,f5]@3 [g4,bb4,eb5]@3 [g4,bb4,eb5]@6 [f4,ab4,c5]@11 [a4,c5,f5]@3, ~@17 [c4,c5]@31 ~@19 [c5,f5]@2 ~@27]/3", // Fdim F Eb Fm F Eb Fm F …
  L: "[[a4,c5,f5]@4 ~ a4@2 [g4,bb4,eb5]@3 [a4,c5,f5]@3 [g4,bb4,eb5]@6 [c4,gb4,bb4,c5]@20 ~@25, ~@2 [c5,f5] ~@29]/2", // F Eb F Eb Cm7b5 F5
  M: "[~@16 g3@6 ~@2 f3@6 ~ bb3@8 ab3@4 bb3@4 ~ g3@2 ~ ab3@4 ~ f3@6 ~ bb3@8 c6 g5@5 ~@2 bb5 f5@5 ~@2 ab5 eb5@5 ~@2 c6 ~@7 c6 g5@2 ~@2 bb5@2 ~@2 ab5@2 ~@2 eb5@2 ~@2 f5@5 ~ c6@8 [c5,c6]@2 g5@2 ~@2 bb5@2 f5 ~ ab5@2 ~@2 eb5@2 g5@2 c5@4 f5@2 eb5@2, ~@15 ab3@2 ~@6 g3@2 ~@22 ab3@2 ~@6 g3@2 ~@14 c5@57 ~@8 c5@15 ~@9, ~@111 f5@2 ~@6 g5@2 ~@39]/5", // C
  N: "[ab4@2 a4@2 bb4@2 b4@2 [c5,f5]@30 c5@2 eb5@6 f5@2 eb5@6 f5@2 eb5@6 eb6@8 c6@2 ~ db5@7 eb5 ~ [f4,eb5]@6 [g4,bb4,db5,eb5]@16 [c5,g5,bb5]@8 [c4,f4,ab4]@8 g5@2 [ab4,f5]@6, ~@72 [ab5,bb5]@5 ~@4 [ab4,db5]@5 ~@42]/4", // F5 F7 Eb7 C7 Fm Db Absus2 Db5
  O: "[[ab4,bb4]@7 f5@2 ~ [g4,db5,eb5]@16 eb4@2 eb5@2 eb5@4 ~@8 g5@5 ~ bb5 ~ f5@5 ~ ab5 ~ eb5@5 ~]/2", // Absus2 Eb7
  P: "[c6 ~@6 c6@2 ~@2 bb5@2 ~@2 f5 ~@3 eb5@2 ~@2 g5 ~@2 f5@5 c6@8 c6 ~@2 g5@2 bb5 ~@2 f5@2 ~@2 eb5@2 ~@2 g5@2 c5@2 f5@4 eb5@2 ab4@2 ~@2 b4@2 c5@2 f5@30 c5@2 eb5@6 f5@2 eb5@6 f5@2 eb5@6 eb6@8 c6@2 [db5,ab5,bb5]@6 eb5@2 [f4,ab4,db5,eb5]@6 [g4,bb4,db5,eb5]@16 [c5,g5,bb5]@8 [c4,eb4,f4,ab4]@8 bb5@2 [bb4,e5,ab5]@6 [bb3,e4,ab4]@8 bb5@2 [c5,eb5,f5,ab5]@30 ~@25, ~@10 c5@23 ~@6 c5@17 ~@11 a4@2 ~@187, ~@5 g5 ~@3 ab5 ~@15 ab5 ~@8 bb4 ~@93]/8", // Bbm7 Db Eb7 C7 Fm7 Bbm7b5 Fm7
  Q: "[~@14 c4@2 ~ b3@5 b3@2 ~ a3@5 d4@8 eb4@6 ~@2 eb4@4 d4@2 ~@2 d4@4 c4@5 f4@9 ~ gb4@8 ~ f4@6 ~@2 eb4@5 ab4@9 ~ a4@7 a4@2 ab4@6 ab4@2 gb4@6, ~@45 f4@2 ~@6 eb4@2 ~@26 gb4@2 ~@6 f4@2 ~@37]/4",
  R: "b4@4 c5@4 c5 b4@3 b4 a4@3",
  S: "[d5@8 d5@2 c5@16 [c5,e5,ab5,c6]@16 c4@2 d4@4 e4@2 f4@2 g4@2 a4@4 d5@14 a4@2 bb4@2 c5@4 db5@2 d5@2 eb5@4 ~@2 e6@14 e5@2 f5@2 gb5@4 g5@2 ab5@2 a5@4 ~ g6@14 ~@2 a6@2 ~ f6@4 ~@16, ~@44 e5@3 ~@13 bb5 ~@7 f6 ~@11]/5", // Caug
  T: "~@17 [c4,f4,a4,c5]@15", U: "~@17 [d4,f4,ab4,b4]@15", V: "~@17 [c4,d4,f4,a4]@15", W: "~ [b3,d4,f4,a4]@16 ~@15",
  X: "[~@2 bb3@7 c4@4 d4@2 e4@2 f4@4 g4@2 a4@2 d5@14 a4@2 bb4@4 c5@2 db5@2 d5@4 eb5@2 ~@3 e6@15 e5@2 f5@2 gb5@2 g5@3 ab5@3 a5@2 bb5@3 g6@15 f6@2 a6@2 f6@2 ~@17, ~ [d4,e4,ab4]@7 ~@47 e5@6 ~@67]/4", // E7
  Y: "[~@19 [c4,f4,a4,c5]@16 ~@16 [d4,f4,ab4,b4]@16 ~@16 [b3,d4,f4,a4]@16 ~@29]/4", // F Ddim Bm7b5
  Z: "[~@10 c4@2 d4@4 e4@2 f4@2 g4@4 a4@2 d5@14 a4@2 bb4@2 c5@4 db5@2 d5@2 eb5@4 ~@2 e6@14 e5@2 f5@2 gb5@4 g5@2 ab5@3 a5@3 bb5@2 g6@14 f6@2 a6@4 f6@2 ~@16, ~@28 e5@3 ~@33]/4",
  AA: "~@9 [c4,f4,a4,c5]@7", AB: "~@9 [d4,f4,ab4,b4]@7", AC: "~@9 [c4,d4,f4,a4]@7", AD: "~ [b3,d4,f4,a4]@8 ~@7",
  AE: "[~@3 [bb3,d4,e4,ab4]@8 c4@2 ~@2 e4@4 f4@2 ~@2 a4@4 d5@13 a4@3 bb4@2 ~@2 db5@4 d5@2 eb5@2 e5@4 e6@14 e5@2 f5@2 gb5@2 g5@4 ab5@2 a5@2 bb5@4 g6@14 f6@2 a6@2 f6@3 ~@16, ~@7 d4 ~@3 g4 ~@11 c5 ~@40]/4", // Bb7
  AF: "[~@19 [c4,f4,a4,c5]@16 ~@16 [d4,f4,ab4,b4]@16 ~@29]/3", AG: "[~@5 [a3,c4,d4,f4]@15 ~@12]/2",
  AH: "~@8 ab3 g3@3 g3 f3@3", AI: "bb3@4 ab3@3 bb3 ab3 g3@2 ab3 g3 f3@3",
  AJ: "[bb3@8 [c5,c6]@2 g5@5 ~ bb5 ~ f5@5 ~ ab5 ~ eb5@5 ~ c6 ~@7 c6 ~ g5@2 ~@2 bb5@2 f5 ~ ab5@2 ~@2 eb5@2 g5 ~ f5@8 c6@8 [c5,c6] g5@2 ~ bb5@2 f5@2 ~@2 ab5@2 eb5@2 g5@4 c5@2 f5@2, ~@10 c5@55 ~@10 c5@15 ~@6]/3", // C
  AK: "[eb5@4 [ab4,a4]@2 bb4@2 b4@2 c5@2 f5@29 c5@2 ~ eb5@6 f5@2 eb5@6 f5@2 eb5@4]/2", // Amaj7
  AL: "[~@2 eb6@8 c6@2 [db5,ab5,bb5]@5 eb5@2 ~ [f4,ab4,db5,eb5]@5 [g4,bb4,db5,eb5]@16 [c5,g5,bb5]@8 [c4,f4,ab4]@8 g5@2 ~ [ab4,f5]@4]/2", // Bbm7 Db Eb7 C7 Fm Db
  AM: "~ [ab4,bb4]@8 f5@2 [g4,db5,eb5]@16 eb4@2 eb5@3", AN: "~ eb5@2 ~@8 g5@5 ~ bb5 ~ f5@5 ~ ab5 ~ eb5@5",
  AO: "~ c6 ~@7 c6 ~ g5@2 bb5@2 ~@2 f5@2 ab5@2 eb5@2 ~@2 g5@2 f5@5",
  AP: "~ c6@8 c6 ~ g5@2 bb5@2 ~@2 f5 ~ ab5@2 eb5@2 ~@2 g5@2 c5@3 f5@2, ~@9 c5@17 ~@6",
  AQ: "[~ eb5@2 ab4@2 a4@2 bb4@2 [b4,c5]@2 f5@30 c5@2 eb5@6 f5@2 eb5@6 f5@2 eb5@5]/2", // Cmaj7
  AR: "[~ eb6@8 c6@2 [db5,ab5,bb5]@6 eb5@2 [f4,ab4,db5,eb5]@6 [g4,bb4,db5,eb5]@16 ~@2 [f5,ab5]@5 [c4,f4,ab4]@2 ~ [c4,f4,ab4]@4 [bb3,e4,ab4]@8 [bb3,e4,ab4]@10 ~@2 [c5,f5,ab5]@5 [c4,f4,ab4]@2 ~ [c4,f4,ab4]@4 [bb3,e4,ab4]@8 [bb3,e4,ab4]@11 ~@2 [c5,f5,ab5]@5 f4 ~ [c4,ab4] [c4,f4,ab4]@4 [bb3,e4,ab4]@8, ~@41 [g5,bb5]@2 ~@85, ~@42 c5@7 ~@79]/4", // Bbm7 Db Eb7 Fm Bbm7b5 Fm Bbm7b5 Fm …
})).s("gm_piano").gain(0.36).pan(0.8)

// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
  ~@10 A@3 ~@15 B@3 C@2 ~@9 D@2 ~@6 E@3 ~@8 F@2 G H I ~@3 J@2 K L M@2 ~@2 N@2 O P Q@2 ~@2 R@2 K S@2 T U V ~@9 W@3 ~@4 X
  Y Z@2
>`.pickRestart({
  A: "[~@17 eb6@6 c5@57 ~@16, ~@23 c6 ~@72]/3",
  B: "[~@7 [c5,c6] [bb4,bb5]@9 [ab4,ab5]@8 [f4,f5]@13 ~ [c5,c6]@3 [bb4,bb5]@3 [bb4,bb5]@4 [ab4,ab5]@8 [f4,f5]@14 [c5,c6]@2 [bb4,bb5]@4 [ab4,ab5]@4 [f4,f5]@4 [eb4,eb5]@4 [f4,b4,f5]@7]/3", // C Bb Ab F C Bb Ab F …
  C: "[~ [f4,f5]@8 [ab4,c5,eb5,f5,ab5]@30 ab3@8 ~@17]/2", D: "[~@2 eb6@6 c5@33 ~@23, ~@8 c6 ~@55]/2",
  E: "[~@7 ab3@8 ab3@2 g3@6 g3@2 f3@6 bb3@8 ab3@6 bb3@2 ab3@2 g3@4 ab3@2 g3@2 f3@5 bb3@8 c4@8 ~@18]/3",
  F: "[~@17 a5@2 ~@2 d5@2 ~@2 [bb4,db5,g5]@24 ~@15, ~@8 d6 ~ f5 ~ a4 ~@19]/2", G: "~ [d4,f4,ab4,b4]@16 ~@15",
  H: "~ [c4,e4,g4,bb4]@16 ~@15", I: "~@17 [bb3,d4,f4,g4]@15",
  J: "[~@15 d6@4 ~ f5@2 ~@2 a4@2 ~ [bb4,db5,g5]@24 ~@13, ~@19 a5@2 ~@2 d5@2 ~@39]/2", K: "~@3 [d4,f4,ab4,b4]@16 ~@13",
  L: "~@3 [c4,e4,g4,bb4]@16 ~@13", M: "[~ [bb3,c4,e4,g4]@4 [a3,c4,d4,f4]@16 ~@11]/2",
  N: "[~@8 d6 a5 f5 d5 a4 [bb4,db5,g5]@12 ~@7]/2", O: "~ [d4,f4,ab4,b4]@8 ~@7", P: "~ [c4,e4,g4,bb4]@8 ~@7",
  Q: "[~@9 [bb3,d4,f4,g4]@9 ~@14]/2", R: "[~@16 d6@3 a5@2 f5@2 d5@2 a4@2 [bb4,db5,g5]@24 ~@13]/2",
  S: "[~@3 [c4,e4,g4,bb4]@16 [b3,d4,f4,a4]@15 [bb3,c4,e4,g4]@8 ~@22]/2", // C7 Bm7b5 C7
  T: "~@9 f3@8 ~ e3@6 ~@2 d3@6, ~@17 f3@2 ~@6 e3@2 ~@5",
  U: "~ g3@8 f3@5 g3@2 ~@2 e3@4 f3@2 ~@2 d3@6, ~@17 f3@2 ~@6 e3@2 ~@5", V: "~ g3@8 ab3@7 ~@16",
  W: "[~ eb6@2 c5@19 ~@10, ~@9 c6 ~@86]/3", X: "~@8 [g5,bb5] c5 ~@22", Y: "~@9 [g5,bb5] ~ c5 ~@20",
  Z: "[[bb3,e4,ab4]@3 [c4,eb4,f4,ab4]@11 ~@2]/2", // Bbm7b5 Fm7
})).s("gm_piano").gain(0.14).pan(0.8)

// chords · piano · "A.PIANO"
const piano_2 = note(`<
  A@2 B@6 C@2 D E@2 F G H I J K@2 L M ~@3 N O P@2 ~@3 Q R S T@2 U V W X Y@2 Z AA AB AC AD AE AF@2 ~ AG AH AI AJ AK AL@2
  AM AN AO AP@5 AQ AR AS@4 AT@2 AM AU AV AW@3 AX@8 AY@2 ~ AZ BA BB BC@8 BD@2 BE@8
>`.pickRestart({
  A: "[~@24 [ab2,eb3,f3]@7 [eb4,f4,ab4]@8 ~ [db4,eb4,g4]@8 eb2@8 [ab2,eb3,f3]@8]/2", // Fm7 Eb7 Fm7
  B: "[[eb4,f4,ab4]@8 [db4,eb4,g4]@8 eb2@7 [ab2,eb3,f3]@8 [c4,eb4,f4,ab4]@8 eb2@8 [c4,eb4,f4,ab4]@8 [ab2,eb3,f3]@8 [c4,eb4,f4,ab4]@8 eb2@8 [c4,eb4,f4,ab4]@8 [ab2,eb3,f3]@8 [c4,eb4,f4,ab4]@8 eb2@8 [c4,eb4,g4]@8 [a2,gb3,c4]@8 [c4,eb4,gb4,a4]@8 [a2,gb3,c4]@8 [c4,eb4,gb4,a4]@8 [bb2,g3,db4]@8 [a2,gb3,c4]@8 [bb2,g3,db4]@8 [bb3,db4,eb4,g4]@8 [bb2,f3,db4]@9]/6", // Fm7 Eb7 Fm7 Cm Gbdim Cdim Gbdim Cdim …
  C: "[[bb3,db4,eb4]@7 ~ [bb2,db4]@7 [bb3,db4,f4]@8 ~ f2@7 [ab3,eb4]@8 bb1@8 [bb3,d4]@10 [bb3,db4]@2 eb3@2 eb2@3, ~@7 [eb3,g3]@7 ~@9 [c3,ab3]@7 ~@34]/2", // Eb7 Bbm Ab5 Bb Bbm Eb Fm
  D: "eb3@3 eb3@2 eb4@4 eb3@16 [ab2,eb3,f3]@7", E: "~ [c4,eb4,f4,ab4]@8 eb2@8 [c4,eb4,f4,ab4]@8 [ab2,eb3,f3]@7",
  F: "~ [c4,eb4,f4,ab4]@8 eb2@8 [c4,eb4,g4]@8 [a2,gb3,c4]@7", // Fm7 Cm Gbdim
  G: "~ [c4,eb4,gb4,a4]@8 [a2,gb3,c4]@8 [c4,eb4,gb4,a4]@8 [bb2,g3,db4]@7", // Cdim Gbdim Cdim Gdim
  H: "[a2,gb3,c4] [bb2,g3,db4] [bb3,db4,eb4,g4] [bb2,f3,db4]", // Gbdim Gdim Eb7 Bbm
  I: "[bb3,db4,eb4] [bb2,eb3,g3,db4] [bb3,db4,f4] [f2,c3,ab3]", J: "[ab3,eb4] [gb2,db3]!2 [ab2,eb3]",
  K: "[eb2@8 ab1@16 [ab3,eb4,gb4]@7 [ab3,db4,e4]@5 [ab3,eb4]@5 [ab2,eb3]@3 [ab3,eb4,gb4]@3 [ab3,eb4,gb4]@3 [ab3,db4,e4]@2 ~ [ab3,e4]@5 [ab3,eb4]@6, ~@52 db4@5 ~@7]/2", // Ab7 Dbm Ab5 Ab7 Dbm Ab5
  L: "[ab2,eb3]@5 [ab3,eb4,gb4]@2 [ab3,eb4,gb4]@6 [ab3,eb4,gb4]@3 [ab3,db4,e4]@3 [ab3,eb4,gb4]@2 ~ [ab3,e4]@5 [ab2,eb3,bb3]@5, ~@21 db4@5 ~@6", // Ab5 Ab7 Dbm Ab7 Dbm Absus2
  M: "~ eb2@4 ab1@12 ~@15", N: "~@17 [ab3,eb4,gb4]@5 [ab3,db4,e4]@6 [ab3,eb4]@4",
  O: "~@2 [ab2,eb3]@2 [ab3,eb4,gb4]@2 [ab3,eb4,gb4]@3 [ab3,db4,e4]@3 [ab3,db4,e4]@6 [ab3,eb4]@5 [ab2,eb3]@6 [ab3,eb4,gb4]@3", // Ab5 Ab7 Dbm Ab5 Ab7
  P: "[[ab3,eb4,gb4]@5 [ab3,eb4,gb4]@2 [ab3,db4,e4]@3 [ab3,eb4,gb4]@3 [ab3,db4,e4]@6 [ab2,eb3,bb3]@5 eb2@6 ab1@10 ~@24]/2", // Ab7 Dbm Ab7 Dbm Absus2
  Q: "~@9 [ab2,eb3,f3]@7 [eb4,f4,ab4]@8 [db4,eb4,g4]@8", R: "eb2 [ab2,eb3,f3] [eb4,f4,ab4] [db4,eb4,g4]",
  S: "eb2 [ab2,eb3,f3] [c4,eb4,f4,ab4] eb2", T: "[c4,eb4,f4,ab4] [ab2,eb3,f3] [c4,eb4,f4,ab4] eb2",
  U: "[c4,eb4,g4] [a2,gb3,c4] [c4,eb4,gb4,a4] [a2,gb3,c4]", // Cm Gbdim Cdim Gbdim
  V: "~ c4@7 ~ bb2@7 ~ [a2,c4]@7 [bb2,g3,db4]@8, [eb4,gb4,a4]@7 ~ [g3,db4]@7 ~ gb3@7 ~@9", // Am Gdim Ebdim Gdim
  W: "~ bb3@8 [bb2,f3,db4]@9 [bb3,db4,eb4]@7 ~ [bb2,db4]@6, [db4,eb4,g4]@7 ~@18 [eb3,g3]@7", // Bbm Eb7 Bbm Eb7 Eb
  X: "~ [bb3,db4,f4]@4 [f2,c3,ab3]@4 [ab3,eb4]@4 bb1@3", // Bbm Fm Ab5
  Y: "[~@2 bb3@8 ~ eb3@2 ~ eb2@4 eb3 eb3@2 ~ eb4@4 eb3@16 [ab2,eb3,f3]@8 [c4,eb4,f4,ab4]@8 eb2@6, ~ d4@7 ~@2 [bb3,db4]@2 ~@52]/2", // Fm7 Bbm
  Z: "~ [c4,eb4,f4,ab4]@4 [ab2,eb3,f3]@4 [c4,eb4,f4,ab4]@4 eb2@3", // Fm7
  AA: "~@2 [c4,eb4,f4,ab4]@8 [ab2,eb3,f3]@8 [c4,eb4,f4,ab4]@7 eb2@7", // Fm7
  AB: "~ [c4,eb4,g4]@8 [a2,gb3,c4]@8 [c4,eb4,gb4,a4]@8 [a2,gb3,c4]@7", // Cm Gbdim Cdim Gbdim
  AC: "~ [c4,eb4,gb4,a4]@8 [bb2,g3,db4]@8 [a2,gb3,c4]@8 [bb2,g3,db4]@7", // Cdim Gdim Gbdim Gdim
  AD: "~ [bb3,db4,eb4,g4]@8 [bb2,f3,db4]@8 [bb3,db4,eb4]@8 [bb2,eb3,g3,db4]@7", // Eb7 Bbm Eb7
  AE: "~ [bb3,db4,f4]@8 [f2,c3,ab3]@8 [ab3,eb4]@8 [gb2,db3]@7", AF: "[~ [gb2,db3]@8 [ab2,eb3]@8 eb2@8 ab1@16 ~@23]/2",
  AG: "~ eb2@8 c2@8 [g4,c5,e5]@8 [f4,b4,d5]@7", AH: "~ g2@8 eb2@9 [bb4,eb5,g5]@8 [ab4,d5,f5]@6",
  AI: "~ bb2@4 gb2@4 [db3,bb3]@4 [eb3,b3]@3", AJ: "~ gb2@4 a2@4 [e3,db4]@4 [gb3,d4]@3",
  AK: "~ a2@4 c3@4 [g3,e4]@4 [a3,f4]@3", // C Dm
  AL: "[~ [b3,g4]@4 [bb3,e4,g4]@4 c2@4 [bb3,c4,e4,ab4]@8 [f2,c3,a3]@4 [a3,c4,d4]@4 [gb2,eb3,a3]@3]/2", // Em Edim Caug F D7 Ebdim
  AM: "~ [c4,eb4,gb4,a4]@4 [g2,bb3]@4 [bb3,c4,e4]@4 [ab2,f3,b3]@3", // Cdim Gm C7 Fdim
  AN: "~@2 [d4,f4,ab4,b4]@8 [a2,f3,c4]@8 [c4,f4,a4]@7 [a2,f3,db4]@7", // Ddim F Aaug
  AO: "~ [db4,f4,a4]@8 [bb2,f3,d4]@8 [bb3,d4,f4]@8 [bb2,f3,db4]@7", // Dbaug Bb Bbm
  AP: "[~ [bb3,db4,f4,g4]@8 c3@4 d3@2 ~@2 f3@4 g3@2 ~@2 b3@16 c3@4 d3@2 ~@2 f3@4 g3@2 ~@2 bb3@16 c3@4 d3@2 e3@2 f3@4 g3@2 ab3@2 a3@12 ab3@4 g3@10 f3@2 e3@2 d3@2 c3@16 ~ f2@7 ~ a3@7 ~ gb2@6, ~@16 e3@2 ~@6 a3@2 ~@22 e3@2 ~@6 a3@2 ~@79 [c3,a3]@7 ~ [c4,d4]@7 ~ [eb3,a3]@7]/5", // Gm7b5 F Csus2 Ebdim
  AQ: "~@2 c4@7 ~ g2@7 ~ bb3@8 ~ [ab2,b3]@5, ~ [eb4,gb4,a4]@3 ~@5 bb3@7 ~ [c4,e4]@7 ~@2 f3@6", // Abm Ebdim C
  AR: "~@3 [d4,b4]@8 [a2,f3,c4]@8 [c4,f4,a4]@8 [a2,f3,db4]@5, ~@2 [f4,ab4]@7 ~@23", // G F Aaug Fm
  AS: "[~@3 [db4,a4]@8 [bb2,f3,d4]@8 [bb3,d4,f4]@8 [bb2,f3,db4]@8 [bb3,db4,f4,g4]@8 ~ d3@2 ~ e3@4 ~ g3@2 ~ a3@4 b3@16 ~ d3@4 e3@2 ~@2 g3@4 a3@2 ~ bb3@16 ~ d3@4 e3@2 ~ f3@8 ~ d3@4, ~@2 f4@7 ~@34 c3@2 ~@6 f3@2 ~@22 c3@2 ~@6 f3@2 ~@22 c3@2 ~@14 c3@2 ~@3]/4", // Gbm Bb Bbm Gm7b5
  AT: "[eb3 e3@4 c3 db3@2 d3 a2 ab2@2 g2 f2@8 [f2,c3,a3]@4 [a3,c4,d4]@4 [gb2,eb3,a3]@3]/2", // F D7 Ebdim
  AU: "~ [d4,f4,ab4,b4]@4 [a2,f3,c4]@4 [c4,f4,a4]@4 [a2,f3,db4]@3", // Ddim F Aaug
  AV: "~ [db4,f4,a4]@4 [bb2,f3,d4]@4 [bb3,d4,f4]@4 [bb2,f3,db4]@3", // Dbaug Bb Bbm
  AW: "[~@2 [bb3,db4,f4,g4]@8 c3@4 d3@2 e3@2 f3@4 g3@2 a3@2 b3@16 c3@4 d3@2 e3@2 f3@4 g3@2 a3@2 bb3@16 c3@4 ~ e3@2 ~ f3@4 ~ ab3@2 ~ a3@6, ~@39 d3 ~@3 g3 ~@4]/3", // Gm7b5
  AX: "[~@6 ab3@4 g3@9 f3@2 ~@2 d3@4 c3@16 [f2,c3,a3]@8 [a3,c4,d4]@8 [gb2,eb3,a3]@8 [c4,eb4,gb4,a4]@8 [g2,bb3]@8 [bb3,c4,e4]@8 [ab2,f3,b3]@8 [d4,f4,ab4,b4]@8 [a2,f3,c4]@8 [c4,f4,a4]@8 [a2,f3,db4]@8 [db4,f4,a4]@8 [bb2,f3,d4]@8 [bb3,d4,f4]@8 [bb2,f3,db4]@8 [bb3,db4,f4,g4]@8 c3@2 d3@4 e3@2 f3@2 g3@2 a3@4 b3@16 c3@2 d3@4 e3@2 f3@2 g3@4 a3@2 bb3@16 c3@2 d3@4 e3@2 f3@8 c3@2 d3@3, ~@11 e3 ~@116]/8", // F D7 Ebdim Cdim Gm C7 Fdim Ddim …
  AY: "[~@2 e3@8 c3@2 ~ db3@4 ~ a2@2 ~ ab2@4 ~ f2@16 ~@22, ~ eb3@2 ~@14 d3@2 ~@6 g2@2 ~@37]/2",
  AZ: "~@5 [ab2,eb3,f3]@4 [eb4,f4,ab4]@4 [db4,eb4,g4]@3", BA: "~ eb2@4 [ab2,eb3,f3]@4 [eb4,f4,ab4]@4 [db4,eb4,g4]@3",
  BB: "~@2 eb2@8 ~ ab2@7 ~ [c4,ab4]@7 eb2@6, ~@10 [eb3,f3]@7 ~ [eb4,f4]@7 ~@7", // Fm Ebsus2
  BC: "[~@3 c4@7 ~ [ab2,f3]@7 ~ [c4,f4,ab4]@7 eb2@9 ~ [c4,f4,ab4]@7 ~ [ab2,f3]@8 [c4,eb4,f4,ab4]@8 eb2@8 [c4,eb4,g4]@8 [a2,gb3,c4]@8 [c4,eb4,gb4,a4]@8 [a2,gb3,c4]@8 [c4,eb4,gb4,a4]@8 [bb2,g3,db4]@8 [a2,gb3,c4]@8 [bb2,g3,db4]@8 [bb3,db4,eb4,g4]@8 [bb2,f3,db4]@8 [bb3,db4,eb4]@8 [bb2,eb3,g3,db4]@8 [bb3,db4,f4]@8 [f2,c3,ab3]@8 [ab3,eb4]@8 bb1@8 [bb3,d4]@7 [bb3,db4]@2 eb3@4 eb2@2 eb3@2 eb3@4 eb4@2 eb3@16 [ab2,eb3,f3]@8 [c4,eb4,f4,ab4]@8 eb2@5, ~@2 [eb4,f4,ab4]@7 ~ eb3@7 ~ eb4@7 ~@10 eb4@7 ~ eb3@7 ~@206]/8", // Db Fm Db Fm7 Cm Gbdim Cdim Gbdim …
  BD: "[~@3 [c4,eb4,f4,ab4]@8 [ab2,eb3,f3]@8 [c4,eb4,f4,ab4]@8 eb2@8 [c4,eb4,f4,ab4]@8 [ab2,eb3,f3]@8 [c4,eb4,f4,ab4]@8 eb2@5]/2", // Fm7
  BE: "[~@3 [c4,eb4,g4]@8 [a2,gb3,c4]@8 [c4,eb4,gb4,a4]@8 [a2,gb3,c4]@8 [c4,eb4,gb4,a4]@8 [bb2,g3,db4]@8 [a2,gb3,c4]@8 [bb2,g3,db4]@8 [bb3,db4,eb4,g4]@8 [bb2,f3,db4]@8 [bb3,db4,eb4]@8 [bb2,eb3,g3,db4]@8 [bb3,db4,f4]@8 ~ ab2@14 ~ [gb2,db3]@8 [gb2,db3]@8 [ab2,eb3,f3]@16 [gb2,db3]@9 [gb2,db3]@8 [ab2,eb3,f3]@16 [gb2,db3]@8 [gb2,db3]@8 f3@5 f3@6 ~@3 f3@6 ~@3 f3@21 ~@8, ~@107 [eb3,f3]@7 ~@90 [ab2,eb3]@44 ~@8]/8", // Cm Gbdim Cdim Gbdim Cdim Gdim Gbdim Gdim …
})).s("gm_piano").gain(0.23).pan(0.2)

// chords · piano · "A.PIANO" · soft notes
const piano_soft_2 = note("<~@21 A@2 B C@2 ~@2 D E F@3 ~@17 G H ~@38 I J K ~@20>".pickRestart({
  A: "[~@17 [db3,ab3,f4]@24 [c3,g3,e4]@15 [b2,f3,eb4]@8]/2", B: "[bb2,f3,d4]@8 bb1@8 ~ bb2@15, ~@16 [f3,ab3,db4]@15 ~",
  C: "[~ [db3,b3]@16 g3@3 ~ f3@3 ~ f3@3 ~ e3@3 ~ e3@7 ~ eb3@8 ~@15, [eb3,g3]@15 ~@2 [ab2,c3]@31 ~@16]/2", // Db7 Eb Ab
  D: "~ [db3,ab3,f4]@3", E: "[c3,g3,e4]@16 ~ [b2,f3,eb4]@8 [bb2,f3,d4]@7",
  F: "[~ bb1@8 [bb2,f3,ab3,db4]@16 [db3,eb3,g3,b3]@16 [ab2,eb3,f3,c4]@8 eb2@8 ab1@16 ~@23]/3", // Bbm7 Ebaug Fm7
  G: "~@9 [ab2,eb3,f3]@8 [eb4,f4,ab4]@8 [db4,eb4,g4]@7", H: "~ eb2@8 [ab2,eb3,f3]@8 [eb4,f4,ab4]@8 [db4,eb4,g4]@7",
  I: "~@5 f2@4 [c4,f4,a4]@4 [bb3,e4,g4]@3", J: "~ c2@4 f2@4 [c4,f4,a4]@4 [bb3,e4,g4]@3", K: "~ c2@4 ~@11",
})).s("gm_piano").gain(0.09).pan(0.2)

stack(piano, piano_soft, piano_2, piano_soft_2)

More by Billy Mayerl