Strudelify

Kitten on the Keys

Zez Confrey

KeyF majorTempo110 bpm
0:00/0:00
// Kitten on the Keys — Zez Confrey
// 110 bpm, 2/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 177 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/2)

// 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 · "Piano--Right hand"
const piano = note(`<
  A B C D E F@2 G H I J K L M N G H I J K L O P G H I J K L M N G H I J K L O Q R S T U V W X Y R S T U Z AA AB AC R S T
  U V W X Y R S T U Z AA AB AD B C D E F@2 G H I J K L M N G H I J K L O AE AF AG AH@2 AI@3 AJ AK AL@2 AM AN AO@3 AP@2
  AQ@6 AR@2 AS@7 AT@2 AU@3 AV@2 AW AX@2 AY AZ BA@2 BB@4 BC@4 BD@3 BE@4 BF BG BH@2 BI BJ BK BL BM@2 BN BO@3 BK BL BM@2 BN
  BP@2 BQ
>`.pickRestart({
  A: "~@11 [eb5,ab5] [f5,bb5]@3 [eb5,ab5]", B: "[e5,a5]@3 [d5,g5] ~@3 [c5,f5]@3 ~ [bb4,eb5] [c5,f5]@3 [bb4,eb5]",
  C: "[c5,f5]@3 [bb4,eb5] ~@3 [ab4,db5]@3 ~ bb4 [g4,c5]@3 [f4,bb4]", // F5 Eb5 Db5 C5 Bb5
  D: "[g4,c5]@3 [f4,bb4] ~@3 [f4,ab4]@3 ~ g4 [d4,f4]@3 ~", E: "[e4,g4,c5]", F: "~@4 [c5,b5,c6] ~@7 [c5,b5,c6] ~@3",
  G: "[ab4,d5]@3 [a4,c5] f4@3 [db5,g5] [d5,f5]@3 c5 [ab4,d5]@3 [a4,c5]", // Abdim Am Dbdim Dm Abdim Am
  H: "f4@3 [db5,g5] [d5,f5]@3 c5 [ab4,d5]@3 [a4,c5] f4@3 [bb4,e5]", // Dbdim Dm Abdim Am Bbdim
  I: "[b4,d5]@3 g4 [db5,g5]@3 [d5,f5] c5@3 [eb5,a5] [e5,g5]@3 d5", J: "[f5,b5]@13 ~@3",
  K: "[ab5,d6]@3 [a5,c6] g5@3 [eb5,a5]@3 ~ [e5,g5] d5@3 [ab4,d5]", L: "[a4,c5]@3 g4 [eb4,a4]@3 [e4,g4]@3 ~ c4 d4@3 e4",
  M: "[a3,c4,f4] ~@3 [b3,f4,a4]@6 ~ g4 [b3,d4,f4] ~@3", N: "[e4,g4,c5]@15 ~",
  O: "[c4,f4] ~@3 [d4,f4,c5]@6 ~ a4 [e4,g4] ~@3", P: "f4", Q: "f4@2 ~@3 ab5@3, ~@4 gb4@3 ~, ~@9 [ab4,c5]@6 ~",
  R: "ab5@3 [ab5,bb5] f5@3 [eb5,ab5]@3 ~ [db5,f5] [c5,eb5]@3 ~, f6@3 ~@5", // Absus2 Ab5 Db Cm
  S: "[bb4,db5]@3 [c5,f5] [bb4,db5]@3 [db5,f5]@3 ~ [bb4,db5] [c5,f5]@3 ~", // Bbm F5 Bbm Db Bbm F5
  T: "[bb4,eb5]@3 [c5,f5] [bb4,eb5]@3 [c5,ab5]@3 ~ [bb4,eb5] [c5,f5]@3 ~", U: "[gb4,bb4]@3 ~",
  V: "[c6,f6]@3 [bb5,eb6] [c6,f6]@3 [bb5,eb6]@3 ~ [c6,f6] [gb5,bb5]@3 ~", // F5 Eb5 F5 Eb5 F5 Gb
  W: "[c5,f5]@3 [bb4,eb5] [c5,f5]@3 [bb4,eb5]@3 ~ [c5,f5] [gb4,bb4]@3 ~", // F5 Eb5 F5 Eb5 F5 Gb
  X: "db5@3 eb5 f5@3 eb5@3 ~ db5 bb4@3 ~, f4@6 ~ g4@9", Y: "~ [c5,ab5]@12 ~@3, [gb4,ab4]@3 ~",
  Z: "e5@3 eb5 d5@3 [db5,a5]@3 ~ [c5,ab5] [db5,a5]@3 ~, b5@3 ~@5", // Gbm Fm Gbm
  AA: "b4@3 bb4 b4@3 [a4,gb5]@3 ~ [ab4,f5] [a4,gb5]@3 ~, ab5@3 ~@5", // D Db D
  AB: "[ab4,f5]@3 g4 ab4@3 [gb4,eb5]@3 ~ [f4,d5] [gb4,eb5]@3 ~", // Db Ebm Dm Ebm
  AC: "[f4,ab4,db5]@2 ~@3 ab5@3, ~@4 gb4@3 ~, ~@9 [ab4,c5]@6 ~", // Db Ab
  AD: "[f4,ab4,db5]@8 ~@3 [eb5,ab5] [f5,bb5]@3 [eb5,ab5]", AE: "f4 ~ [f4,a4,c5,f5] ~",
  AF: "[a4,c5,f5]!2 ~ [bb4,eb5,gb5]@2 ~ [bb4,eb5,gb5] ~, ~@11 ab5@2 ~@3", // F Ebm
  AG: "[a4,c5,f5]!2 ~ [gb4,bb4,eb5]@2 ~ [gb4,bb4,eb5] ~, ~@11 db5@2 ~@3", // F Ebm
  AH: "[[a4,c5,f5] ~ [f4,a4,f5] ~ [f4,bb4,f5] [f4,b4,f5] ~ [f4,c5,f5]@2 ~@3 [f5,a5,f6]@2 ~@2]/2", // F Bb5 Fdim F5 F
  AI: "[[db7,g7]@2 ~ c7@2 [gb6,c7]@2 ~ f6@2 ~ [d6,f6]@2 c6@2 ~ [g5,bb5]@2 f5@2 ~ [d5,f5]@2 c5@2 ~ a5@4 [c5,e5]@2 ~@2 g5@2 [bb4,e5]@2 ~@2 [bb4,e5,g5]@5 [c5,e5,c6] ~@2, ~@2 [d7,f7]@2 ~@3 [g6,bb6]@2 ~ [db6,g6]@2 ~@3 [gb5,c6]@2 ~@3 [db5,g5]@2 ~@3 bb4@2 ~@3 a5@4 ~@2 g5@4 ~@8, ~@26 a4@8 g4@11 ~@3]/3", // Dbdim Gbdim Dm Gm Dm C Bbdim Edim …
  AJ: "~ [c5,e5,c6]@2 [c5,e5,a5]@2 ~@2 [a4,eb5,g5]@9", AK: "[a4,eb5,f5]@11 ~ [a4,eb5,a5]@2 ~@2",
  AL: "[[bb4,eb5,bb5]@2 [c5,eb5,c6]@3 [d5,f5,d6]@6 [bb4,d5,bb5]@2 ~@2 [a4,db5,a5]@2 [g4,g5]@4 [f4,bb4,d5,f5]@11]/2", // Eb5 Cm Dm Bb A G Bb
  AM: "~@6 [db7,g7]@2 ~ c7@2 [gb6,c7]@2 ~ f6@2, ~@8 [d7,f7]@2 ~@3 [g6,bb6]@2 ~", // Dbdim Gbdim Dm Gm
  AN: "~ [d6,f6]@2 c6@2 ~ [g5,bb5]@2 f5@2 ~ [d5,f5]@2 ~ bb4@2, [db6,g6]@2 ~@3 [gb5,c6]@2 ~@3 [db5,g5]@2 ~ c5@2 ~", // Dm Gm Dm Dbdim Gbdim Dbdim
  AO: "[a5@4 [c5,f5,a5]@4 c6@4 [f5,a5,c6]@7 [e5,a5,e6]@2 ~@2 [e5,a5,e6]@4 [d5,f5,b5,d6]@2 ~@2 [d5,bb5,d6]@3 ~ [bb4,e5,bb5]@3 [a4,c5,a5]@2 [g4,bb4,g5]@4 [gb4,a4,gb5]@4, a4 c5 ~@4]/3", // F A5 Bdim Gm Bbdim Am Gm Gbm
  AP: "[~@2 [g4,bb4,g5]@4 [a4,c5,a5]@2 [bb4,d5,bb5]@3 eb5@6 [a4,a5]@2 ~@2 [g4,eb5,g5]@2 [gb4,eb5,gb5]@4 [f4,eb5,f5]@5, ~@11 [c5,c6]@21, ~@17 eb5@4 ~@11]/2", // Gm Am Bb A Cm Ebm F7 C
  AQ: "[~@4 [f5,a5,c6,f6]@4 ~@4 [db7,g7]@2 ~ c7@2 ~ [g6,bb6]@2 f6@2 ~ [d6,f6]@2 c6@2 ~ [g5,bb5]@2 ~ [db5,g5]@2 [d5,f5]@2 ~ bb4@2 a5@4 [c5,e5]@2 ~@2 g5@2 [bb4,e5,g5]@3 [bb4,e5,g5]@6 [c5,e5,c6] ~@3 [c5,e5,c6]@2 [c5,e5,a5]@2 ~@2 [a4,eb5,g5]@9 [a4,eb5,f5]@11 ~ [a4,eb5,a5]@2 ~@2 eb5 [c5,eb5,c6]@3, ~@14 [d7,f7]@2 ~ [gb6,c7]@2 ~@3 [db6,g6]@2 ~@3 [gb5,c6]@2 ~ f5@2 ~@3 c5@2 ~ a4@8 g4@11 ~@35 [bb4,bb5]@2 ~@2, ~@21 a5@2 ~@25]/6", // F Dbdim Gm Dm Gm Dbdim Dm C …
  AR: "[~ [d5,gb5]@6 d5@4 [d5,g5]@2 [d5,ab5]@4 [d5,a5]@6 ~@3 [c5,d5,gb5,d6]@4 ~@2, ~ d6@21 ~@10, ~@7 gb5@15 ~@10]/2", // D G5 Ddim D5 D7
  AS: "[~@3 [d5,f5]@2 c5@2 ~ [b4,d5]@2 g4@2 ~ [d5,f5]@2 ~ [eb5,a5]@2 [e5,g5]@2 ~ [f5,b5]@3 ~@4 [ab5,d6]@2 ~ g5@2 ~ [e5,g5]@2 d5@2 ~ [a4,c5]@2 g4@2 ~ [e4,g4]@2 ~ c4@3 ~@4 a4@2 ab4 eb5@3 ab4 [a4,f5]@2 ~@3 ab4@2 f5@3 ab4 g4@2 ab4 [a4,f5]@2 ~@3 ab4@2 f5@3 ab4 g4@2 gb4 [f4,d5]@2 [eb4,c5]@3 [d4,bb4]@5 ~@4 [d4,f4,bb4]@5 ~@2 [db7,g7]@2, ~@2 [db5,g5]@2 ~@3 [bb4,e5]@2 ~@3 [db5,g5]@2 ~ c5@2 ~@3 d5@2 ~@8 [a5,c6]@2 ~ [eb5,a5]@2 ~@3 [ab4,d5]@2 ~@3 [eb4,a4]@2 ~@9 f5@3 g4@2 ~@4 [g4,eb5]@5 a4@2 ~@2 eb5@4 ~ [g4,eb5]@5 a4@2 ~@2 eb5@4 ~@22]/7", // Dm Bm Dm Ebdim Em Fdim Abdim Em …
  AT: "[[d7,f7]@2 c7 [gb6,c7]@2 ~ f6@2 [db6,g6]@2 ~ c6@2 [gb5,c6]@2 ~ f5@2 ~ [d5,f5]@2 c5@2 ~ a5@4 [c5,e5]@2 ~@2, ~@5 [g6,bb6]@2 ~@3 [d6,f6]@2 ~@3 [g5,bb5]@2 ~ [db5,g5]@2 ~@3 bb4@2 ~@3 a5@4, ~@3 a4]/2", // Dm Gbdim Dbdim Gbdim Dm C Gm Dm …
  AU: "[g5@2 [bb4,e5]@2 ~@2 [bb4,e5,g5]@6 [c5,e5,c6] ~@2 [c5,e5,c6]@2 [c5,e5,a5]@2 ~@2 [a4,eb5,g5]@10 [a4,eb5,f5]@11 [a4,eb5,a5]@2 ~@2 [bb4,eb5,bb5]@2, g4@11 ~@37, ~ g5@2 ~@21]/3", // Bbdim Edim C Am Am7b5 F7 Adim Eb5
  AV: "[[c5,eb5,c6]@4 [d5,f5,d6]@5 [bb4,d5,bb5]@2 ~@2 [a4,db5,a5]@2 [g4,g5]@4 [f4,bb4,d5,f5]@13]/2", // Cm Dm Bb A G Bb
  AW: "~@4 [db7,g7]@2 ~ c7@2 [gb6,c7]@2 ~ f6@2 [db6,g6]@2, ~@6 [d7,f7]@2 ~@3 [g6,bb6]@2 ~@3", // Dbdim Gbdim Dbdim Dm Gm
  AX: "[~ c6@2 ~ [g5,bb5]@2 f5@2 ~ [d5,f5]@2 c5@2 ~ a5@4 [c5,f5,a5]@4 c6@4 [f5,a5,c6]@6, [d6,f6]@2 ~ [gb5,c6]@2 ~@3 [db5,g5]@2 ~@3 bb4@2 ~@7 c5@8 ~@2, ~@7 a4@4 ~@5]/2", // Gm Dm F Dm Gbdim Dbdim
  AY: "~ [e5,a5,e6]@2 ~@2 [e5,a5,e6]@4 [d5,f5,b5,d6]@2 ~@2 [d5,bb5,d6]@3", // A5 Bdim Gm
  AZ: "~ [bb4,e5,bb5]@4 ~ [g4,bb4,g5]@4 [gb4,a4,gb5]@6, ~@5 [a4,c5,a5]@2 ~@9", // Bbdim Gm Gbm Am
  BA: "[[g4,bb4,g5]@4 [a4,c5,a5]@2 [bb4,d5,bb5]@4 eb5@5 [a4,a5]@2 ~@2 [g4,eb5,g5]@2 [gb4,eb5,gb5]@4 [f4,eb5,f5]@6 ~, ~@10 [c5,c6]@21 ~, ~@15 eb5@4 ~@13]/2", // Gm Am Bb A Cm Ebm F7 C
  BB: "[~@2 [f5,a5,c6,f6]@4 ~@4 [db7,g7]@2 ~ c7@2 [gb6,c7]@2 ~ f6@2 [db6,g6]@2 ~ c6@2 ~ [g5,bb5]@2 f5@2 ~ [d5,f5]@2 c5@2 ~ a5@4 [c5,e5]@2 ~@2 g5@2 [bb4,e5]@2 ~@2 [bb4,e5,g5]@5 [c5,e5,c6] ~@3 [c5,e5,c6]@2 [c5,e5,a5]@2 ~, ~@12 [d7,f7]@2 ~@3 [g6,bb6]@2 ~@3 [d6,f6]@2 ~ [gb5,c6]@2 ~@3 [db5,g5]@2 ~@3 bb4@2 ~@3 a5@4 ~@2 g5@4 ~@14, ~@36 a4@8 g4@11 ~@9]/4", // F Dbdim Gbdim Dbdim Gm Dm C Bbdim …
  BC: "[~ [a4,eb5,g5]@9 [a4,eb5,f5]@11 ~ [a4,eb5,a5]@2 ~@2 [bb4,eb5,bb5]@2 [c5,eb5,c6]@3 [d5,gb5]@6 d5@4 [d5,g5]@2 [d5,ab5]@4 [d5,a5]@6 ~@3 [c5,d5,gb5,d6]@4 ~@4, ~@31 d6@21 ~@12, ~@37 gb5@15 ~@12]/4", // Am7b5 F7 Adim Eb5 Cm D G5 Ddim …
  BD: "[[db5,g5]@2 ~ c5@2 [bb4,e5]@2 ~ g4@2 ~ [d5,f5]@2 c5@2 ~ [e5,g5]@2 d5@2 [f5,b5]@3 ~@3 [ab5,d6]@2 ~ g5@2 [eb5,a5]@2 ~ d5@2 ~ [a4,c5]@2 g4@2 ~ [e4,g4]@2 ~@2 c4@2, ~@2 [d5,f5]@2 ~@3 [b4,d5]@2 ~ [db5,g5]@2 ~@3 [eb5,a5]@2 ~@11 [a5,c6]@2 ~@3 [e5,g5]@2 ~ [ab4,d5]@2 ~@3 [eb4,a4]@2 ~@5]/3", // Dbdim Bbdim Dm Em Fdim Abdim Ebdim Am …
  BE: "[~@4 f5@3 ab4 g4@2 ab4 [a4,f5]@2 ~@3 ab4@2 f5@3 ab4 g4@2 ab4 [a4,f5]@2 [g4,eb5]@4 ~ f5@3 ab4 g4@2 gb4 [f4,d5]@2 [eb4,c5]@4 [d4,bb4]@5 ~@6 [eb5,ab5] [f5,bb5]@3 [eb5,ab5] [e5,a5]@2 [d5,g5], ~@4 a4@2 ~@2 eb5@4 ~ [g4,eb5]@5 a4@2 ~@2 eb5@4 ~@5 ab4@2 ~@31, ~@16 a4 ~ eb5@2 ~@12]/4", // Dm Cm Dm Cm Gm Ab5 Bb5 Ab5 …
  BF: "~@3 [c5,f5]@3 ~ [bb4,eb5] [c5,f5]@2 [bb4,eb5] [c5,f5]@3 [bb4,eb5] ~", // F5 Eb5 F5 Eb5 F5 Eb5
  BG: "~@2 [ab4,db5]@3 bb4 [g4,c5]@3 [f4,bb4] [g4,c5]@3 [f4,bb4] ~@2", // Db5 C5 Bb5 C5 Bb5
  BH: "[[f4,ab4]@3 ~ g4 [d4,f4]@3 ~ [e4,g4,c5]@16 ~@3 b5 [c5,c6] ~@2]/2", BI: "~@4 b5 [c5,c6] ~@6 b5 [c5,c6] ~@2",
  BJ: "~@4 b5 [c5,c6] ~@3 [ab4,d5]@3 [a4,c5] f4@3", // C Abdim Am
  BK: "[db5,g5] [d5,f5]@3 c5 [ab4,d5]@3 [a4,c5] f4@3 [db5,g5] [d5,f5]@3", // Dbdim Dm Abdim Am Dbdim Dm
  BL: "c5 [ab4,d5]@3 [a4,c5] f4@3 [bb4,e5] [b4,d5]@3 g4 [db5,g5]@3", // Abdim Am Bbdim Bm Dbdim
  BM: "[[d5,f5] c5@3 [eb5,a5] [e5,g5]@3 d5 [f5,b5]@13 ~@3 [ab5,d6]@3 [a5,c6] g5@3]/2", // Dm Ebdim Em Fdim Abdim Am
  BN: "[eb5,a5]@3 ~ [e5,g5] d5@3 [ab4,d5] [a4,c5]@3 g4 [eb4,a4]@3", // Ebdim Em Abdim Am Ebdim
  BO: "[[e4,g4]@3 ~ c4 d4@3 e4 [a3,c4,f4] ~@3 [b3,f4,a4]@6 ~ g4 [b3,d4,f4] ~@3 [e4,g4,c5]@15 ~ [ab4,d5]@3 [a4,c5] f4@3]/3", // Em F Bm7b5 Bdim C Abdim Am
  BP: "[[e4,g4]@5 ~@2 [db6,g6]@2 [d6,f6]@2 c6 [gb5,c6]@2 ~ f5@2 [db5,g5]@2 ~ c5@2 [gb4,c5]@2 ~ f4@2 ~@2 [bb3,e4,a4]@3, ~@14 [g5,bb5]@2 ~@3 [d5,f5]@2 ~@3 [g4,bb4]@2 ~@6]/2", // Em Dbdim Dm Gbdim Dbdim Gbdim A Gm …
  BQ: "~ [f3,a3,c4,f4]@2 ~@13", // F
})).s("gm_piano").gain(0.48)

// chords · piano · "Piano--Left hand"
const piano_2 = note(`<
  A B C D E F@4 G H I J K L F@2 G H I J M N F@2 G H I J K L F@2 G H I J M O P@2 Q R S T U V P@2 Q W X Y Z AA P@2 Q R S T
  U V P@2 Q W X Y Z AB B C D E F@4 G H I J K L F@2 G H I J M AC AD@2 AE@2 AF@2 AG AH AI AJ@2 AK AL AM@3 AN AO AP AQ@2 AR
  AS AT@3 AU AV AW@2 AX@2 AY AZ BA BB@3 BC@2 BD BE BF BG BH BI@2 BJ BK@2 BL@2 BM BN BO BP@3 BQ@2 BR BS BT@2 BU BV BW@3
  BX BY BZ CA CB@2 CC BW BX BY BZ CA CD@2 CE
>`.pickRestart({
  A: "~@3 [c4,c5]", B: "[b3,b4] [bb3,bb4] [a3,a4] [ab3,ab4]", C: "[g3,g4] [gb3,gb4] [f3,f4] [eb3,eb4]",
  D: "[d3,d4] [db3,db4] [c3,c4] [b2,b3]", E: "[c3,c4] ~ [c2,c3] ~ [d2,d3] ~ [e2,e3] ~",
  F: "[f2,c3] f3 ~@2 [f2,c3] g3 ~@2 [f2,c3] ab3 ~@2 [f2,c3] g3 ~@2", // F5
  G: "[d2,d3] ~@3 [g3,b3,f4] ~@3 [a2,a3] ~@3 [bb2,bb3] ~@3", // D G7 A Bb
  H: "[b2,b3] ~@3 [g3,b3,f4] ~@3 [g2,d3] g3 ~@2 [f2,c3] f3 ~@2", // B G7 G5 F5
  I: "[e2,e3] ~@3 [bb3,c4,e4] ~@3 [c2,c3] ~@3 [bb3,c4,e4] ~@3", J: "[e2,e3] ~@3 [bb3,c4] ~@3 [c2,c3] ~@3 [bb3,c4] ~@3",
  K: "[f2,c3] ~@3 [g2,d3]@6 ~@2 [g2,d3] ~@3", L: "c3 ~@3 [c2,c3] ~@3 [d2,d3] ~@3 [e2,e3] ~@3",
  M: "[f3,a3] ~@3 [c3,bb3]@6 ~@2 [c3,bb3] ~@3", N: "[f3,a3]@4 [c2,c3] ~@3 [d2,d3] ~@3 [e2,e3] ~@3, c4",
  O: "[f3,a3,c4]@2 ~@2 [ab2,ab3]@3 ~", P: "[db2,db3] ~@3 [ab3,db4,f4]@2 ~@2 [ab2,ab3] ~@3 [ab3,db4,f4]@2 ~@2",
  Q: "[eb2,eb3] ~@3 [ab3,c4,gb4]@2 ~@2 [ab2,ab3] ~@3 [ab3,c4,gb4]@2 ~@2", // Eb Ab7 Ab Ab7
  R: "[eb2,eb3]@3 ~ [ab2,ab3] ~@3 [bb2,bb3] ~@3 [b2,b3] ~@3", // Eb Ab Bb B
  S: "[c3,c4] ~@3 [ab3,c4,gb4]@2 ~@2 [ab2,ab3] ~@3 [ab3,c4,gb4]@2 ~@2", // C Ab7 Ab Ab7
  T: "[c3,c4] ~@3 [ab3,c4,gb4]@2 ~@2 [ab2,ab3] ~@3 [ab3,c4]@2 ~@2", U: "~@4 db4@3 ~@5 bb3@3 ~, db3 bb2",
  V: "[c3,c4]@3 ~ [ab2,ab3] ~@3 [bb2,bb3] ~@3 [c3,c4] ~@3", W: "[c3,c4]@3 ~ [bb2,bb3] ~@3 [ab2,ab3] ~@3 [g2,g3] ~@3",
  X: "[gb2,gb3]@3 ~ [a3,b3,eb4]@2 ~@2 [b1,b2]@3 ~ [a3,b3,eb4]@2 ~@2", // Gb B7 B B7
  Y: "[e2,e3]@3 ~ [ab3,b3,e4]@2 ~@2 [b1,b2]@3 ~ [a3,b3,eb4]@2 ~@2", Z: "[ab2,ab3] [a2,a3] [bb2,bb3] [c3,c4]",
  AA: "[db3,db4]@2 ~@2 [ab2,ab3]@3 ~", AB: "[db3,db4]@2 ab3 ~ [db3,db4] ~ [c4,c5]@2", AC: "[f3,a3,c4] ~ [f2,f3] ~",
  AD: "[f3,f4]@3 [c3,c4]@2 ~ [c3,c4]@2", AE: "[[f3,f4]@2 [f2,f3]@2 [g2,g3] [ab2,ab3]@2 [a2,a3]@2 ~@3 [f3,f4]@2 ~@2]/2",
  AF: "[[db5,db6]@2 [d5,d6]@2 ~@4 [g4,g5]@2 ~@3 [db4,db5]@2 [d4,d5]@2 ~@4 [g3,g4]@2 ~@3 [c3,c4]@2 ~@2 [bb3,c4,e4]@2, ~@7 [gb4,gb5]@2 ~@11 [gb3,gb4]@2 ~@10]/2", // Db D G Db D G C C7 …
  AG: "~@2 [c2,c3]@2 ~@2 [bb3,c4,e4]@2 ~ [g2,g3]@2 ~@2 [bb3,c4,e4]@2 ~", // C C7 G C7
  AH: "~ [c2,c3]@2 ~@2 [bb3,c4,e4]@2 ~@2 [f2,f3]@2 ~@2 [c4,eb4,f4]@2 ~", // C C7 F F7
  AI: "[c2,c3] ~ [c4,eb4,f4] ~ [a2,a3] ~ [f2,f3] ~", // C F7 A F
  AJ: "[[g2,g3]@2 ~@2 [a2,a3]@2 ~ [bb2,bb3]@2 ~@2 [f3,bb3,d4]@2 ~@6 db4@2 ~@2 [d3,d4]@2 ~@2 [f2,f3]@2 ~ [g2,g3]@2, ~@15 db3@8 ~@9]/2", // G A Bb D F G
  AK: "~ [a2,a3] ~ [db5,db6] [d5,d6] ~@2 [g4,g5], ~@13 [gb4,gb5]@2 ~", // A Db D G Gb
  AL: "~@3 [db4,db5]@2 [d4,d5]@2 ~@4 [g3,g4]@2 ~@3, ~@5 [gb3,gb4] ~@2", // Db D G Gb
  AM: "[[c3,c4]@2 ~@2 [a3,c4,f4]@2 ~@2 [a2,a3]@2 ~@2 [a3,c4,f4]@2 ~ [f2,f3]@2 ~@2 [a3,c4,f4]@2 ~@2 [a2,a3]@2 ~@2 [ab2,ab3]@2 ~@2 [g2,g3]@2 ~@2 [bb3,c4,e4]@2 ~ [c2,c3]@2 ~@2 [bb3,c4,e4]@2 ~@2 [e2,e3]@2]/3", // C F A F A Ab G C7 …
  AN: "~@2 [bb3,c4,e4]@2 ~@2 [c2,c3]@2 ~ [bb3,c4,e4]@2 ~@2 [a2,a3]@2 ~", // C7 C C7 A
  AO: "~ [f2,f3]@2 ~@2 [g2,g3]@2 ~@2 [ab2,ab3]@2 ~@2 [a2,a3]@2 ~", AP: "~@2 [f2,f3] ~@3 [db5,db6] [d5,d6]",
  AQ: "[~@2 [gb4,gb5]@2 [g4,g5]@2 ~@3 [db4,db5]@2 [d4,d5]@2 ~@2 [gb3,gb4]@2 [g3,g4]@2 ~@3 [c3,c4]@2 ~@2 [bb3,c4,e4]@2 ~@2 [c2,c3]@2]/2", // Gb G Db D Gb G C C7 …
  AR: "~ [bb3,c4,e4]@2 ~@2 [g2,g3]@2 ~@2 [bb3,c4,e4]@2 ~@2 [c2,c3]@2 ~", // C7 G C7 C
  AS: "~ [bb3,c4,e4]@2 ~@2 [f2,f3]@2 ~ [c4,eb4,f4]@2 ~@2 [c2,c3]@2 ~@2", // C7 F F7 C
  AT: "[[c4,eb4,f4]@2 ~@2 [a2,a3]@2 ~@2 [f2,f3]@2 ~@2 [g2,g3]@2 ~ [a2,a3]@2 ~@2 [d2,d3]@2 ~@2 [d2,d3]@2 ~@2 [e2,e3]@2 ~@2 [f2,f3]@2 ~@2 [gb2,gb3]@2 ~@5 [d2,d3]@4 ~@2]/3", // F7 A F G A D E F …
  AU: "~@3 [g2,g3]@2 ~@3 [b2,b3]@2 ~@3 [d3,d4]@2 ~, ~@2 [gb2,gb3]@2 ~@3 [bb2,bb3]@2 ~@3 [db3,db4]@2 ~@2", // G B D Gb Bb Db
  AV: "[eb3,eb4]@2 [e3,e4]@2 ~ [g3,g4]@2 ~@5 [ab3,ab4]@2 [a3,a4]@2", // Eb E G Ab A
  AW: "[~@2 [e3,e4]@2 ~@3 [a2,a3]@2 ~@3 [e2,e3]@2 ~ [c2,c3]@3 ~@4 [f2,f3]@2 ~ [a3,c4,eb4,f4]@2 ~@2 [c2,c3]@2 ~, ~ [eb3,eb4]@2 ~@3 [ab2,ab3]@2 ~@3 [eb2,eb3]@2 ~@19]/2", // E A E C F F7 C Eb …
  AX: "[~ [a3,eb4]@2 ~ [f2,f3]@2 ~@2 [c4,eb4,f4]@2 ~ [c2,c3]@2 ~@2 [a3,eb4]@2 ~ [a2,a3]@2 ~@2 [f2,f3]@2 ~ [g2,g3]@2 ~@2 [a2,a3]@2 ~]/2", // Adim F F7 C Adim A F G …
  AY: "[bb2,bb3]@2 ~@5 [bb2,bb3]@2 ~@5 [db5,db6]@2", // Bb Db
  AZ: "[d5,d6]@2 ~@4 [g4,g5]@2 ~@3 [db4,db5]@2 [d4,d5]@2 ~, ~@5 [gb4,gb5]@2 ~@9", // D G Db D Gb
  BA: "~@3 [g3,g4]@2 ~@3 [c3,c4]@2 ~@2 [bb3,c4,e4]@2 ~@2, ~ [gb3,gb4] ~@6", // G C C7 Gb
  BB: "[[c2,c3]@2 ~@2 [bb3,c4,e4]@2 ~@2 [g2,g3]@2 ~@2 [bb3,c4,e4]@2 ~ [c2,c3]@2 ~@2 [bb3,c4,e4]@2 ~@2 [f2,f3]@2 ~@2 [c4,eb4,f4]@2 ~@2 [c2,c3]@2 ~ [c4,eb4,f4]@2 ~@2 [a2,a3]@2 ~@2 [f2,f3]@2 ~@2 [g2,g3]@2]/3", // C C7 G C7 C C7 F F7 …
  BC: "[~@2 [a2,a3]@2 ~@2 [bb2,bb3]@2 ~ [f3,bb3,d4]@2 ~@6 db4@2 ~@2 [d3,d4]@2 ~@2 [f2,f3]@2 ~@2 [g2,g3]@2 ~, ~@13 db3@8 ~@11]/2", // A Bb D F G
  BD: "[a2,a3] ~ [db5,db6] [d5,d6] ~@2 [g4,g5] ~, ~@11 [gb4,gb5]@2 ~@3", // A Db D G Gb
  BE: "~ [db4,db5]@2 [d4,d5]@2 ~@4 [g3,g4]@2 ~@3 [c3,c4]@2, ~@4 [gb3,gb4] ~@3", // Db D G C Gb
  BF: "~ [a3,c4,f4] ~ [a2,a3] ~ [a3,c4,f4] ~ [f2,f3]", // F A F
  BG: "~ [a3,c4,f4]@2 ~@2 [a2,a3]@2 ~@2 [ab2,ab3]@2 ~@2 [g2,g3]@2 ~", // F A Ab G
  BH: "~ [bb3,c4,e4]@2 ~@2 [c2,c3]@2 ~ [bb3,c4,e4]@2 ~@2 [e2,e3]@2 ~@2", // C7 C C7 E
  BI: "[[bb3,c4,e4]@2 ~@2 [c2,c3]@2 ~@2 [bb3,c4,e4]@2 ~ [a2,a3]@2 ~@2 [f2,f3]@2 ~@2 [g2,g3]@2 ~@2 [ab2,ab3]@2 ~@2 [a2,a3]@2 ~@3]/2", // C7 C C7 A F G Ab A
  BJ: "~ [f2,f3] ~@3 [db5,db6] [d5,d6] ~", // F Db D
  BK: "[~@2 [g4,g5]@2 ~@3 [db4,db5]@2 [d4,d5]@2 ~@4 [g3,g4]@2 ~@3 [c3,c4]@2 ~@2 [bb3,c4,e4]@2 ~@2 [c2,c3]@2 ~@2, ~ [gb4,gb5]@2 ~@11 [gb3,gb4]@2 ~@16]/2", // G Db D G C C7 C Gb
  BL: "[[bb3,c4,e4]@2 ~ [g2,g3]@2 ~@2 [bb3,c4,e4]@2 ~@2 [c2,c3]@2 ~@2 [bb3,c4,e4]@2 ~@2 [f2,f3]@2 ~@2 [c4,eb4,f4]@2 ~ [c2,c3]@2 ~@2 [c4,eb4,f4]@2]/2", // C7 G C7 C C7 F F7 C …
  BM: "~ [a2,a3] ~ [f2,f3] ~ [g2,g3] ~ [a2,a3]", BN: "~ [d2,d3]@2 ~@2 [d2,d3]@2 ~@2 [e2,e3]@2 ~@2 [f2,f3]@2 ~",
  BO: "~ [gb2,gb3]@2 ~@5 [d2,d3]@4 ~@4", // Gb D
  BP: "[[gb2,gb3]@2 [g2,g3]@2 ~ [bb2,bb3]@2 [b2,b3]@2 ~@2 [d3,d4]@2 ~@3 [e3,e4]@2 ~@2 [g3,g4]@2 ~@4 [ab3,ab4]@2 [a3,a4]@2 ~ [eb3,eb4]@2 [e3,e4]@2 ~@2 [a2,a3]@2 ~@3 [e2,e3]@2 ~@2 [c2,c3]@2, ~@10 [db3,db4]@2 ~@3 [eb3,eb4]@2 ~@19 [ab2,ab3]@2 ~@3 [eb2,eb3]@2 ~@5]/3", // Gb G Bb B D E G Ab …
  BQ: "[~@4 [f2,f3]@2 ~@2 [a3,c4,eb4,f4]@2 ~ [c2,c3]@2 ~@2 [a3,eb4]@2 ~ [f2,f3]@2 ~@2 [c4,eb4,f4]@2 ~ [c2,c3]@2 ~@2 [a3,eb4]@2 ~]/2", // F F7 C Adim F F7 C Adim
  BR: "[a2,a3]@2 ~@2 [f2,f3]@2 ~ [g2,g3]@2 ~@2 [a2,a3]@2 ~ [bb2,bb3]@2", // A F G A Bb
  BS: "~@2 f3@2 ~ [bb2,bb3]@2 ~@2 [c4,c5]@3 ~ [b3,b4]@3", // Bb C B
  BT: "[[bb3,bb4]@3 ~ [a3,a4]@3 ~ [ab3,ab4]@3 [g3,g4]@3 ~ [gb3,gb4]@3 ~ [f3,f4]@3 [eb3,eb4]@3 ~ [d3,d4]@3 ~ [db3,db4]@2]/2", // Bb A Ab G Gb F Eb D …
  BU: "~ [c3,c4]@3 ~ [b2,b3]@3 ~ [c3,c4]@2 ~@2 [c2,c3]@2 ~", // C B C
  BV: "~ [d2,d3]@2 ~@2 [e2,e3]@2 ~@2 [f2,c3] f3 ~@2 [f2,c3] g3 ~", // D E F5
  BW: "~ [f2,c3] ab3 ~@2 [f2,c3] g3 ~@2 [f2,c3] f3 ~@2 [f2,c3] g3 ~", // F5
  BX: "~ [f2,c3] ab3 ~@2 [f2,c3] g3 ~@2 [d2,d3] ~@3 [g3,b3,f4] ~@2", // F5 D G7
  BY: "~ [a2,a3] ~@3 [bb2,bb3] ~@3 [b2,b3] ~@3 [g3,b3,f4] ~@2", // A Bb B G7
  BZ: "~ [g2,d3] g3 ~@2 [f2,c3] f3 ~@2 [e2,e3] ~@3 [bb3,c4,e4] ~@2", // G5 F5 E C7
  CA: "~ [c2,c3] ~@3 [bb3,c4,e4] ~@3 [e2,e3] ~@3 [bb3,c4] ~@2", // C C7 E Bbsus2
  CB: "[~ [c2,c3] ~@3 [bb3,c4] ~@3 [f2,c3] ~@3 [g2,d3]@6 ~@2 [g2,d3] ~@3 c3 ~@3 [c2,c3] ~@2]/2", // C Bbsus2 F5 G5 C
  CC: "~ [d2,d3] ~@3 [e2,e3] ~@3 [f2,c3] f3 ~@2 [f2,c3] g3 ~", // D E F5
  CD: "[~ [c2,c3] ~@5 [db4,db5]@2 [d4,d5]@2 ~@4 [g3,g4]@2 ~@3 [db3,db4]@2 [d3,d4]@2 ~@5 c3@3, ~@7 [gb3,gb4] ~@8]/2", // C Db D G Db D Gb
  CE: "~ f2@2 ~@13",
})).s("gm_piano").gain(0.4)

stack(piano, piano_2)

More by Zez Confrey