Strudelify

You'd Be So Nice to Come Home To

Cole Porter

KeyC minorTempo170 bpm
0:00/0:00
// You'd Be So Nice to Come Home To — Porter Cole
// 170 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 161 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(170/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 · "You be so"
const piano = note(`<
  A@2 B C@3 D@3 E F G H@2 I J K@2 L@2 M@2 N@2 O P@2 Q R S@2 T U@2 V W X@2 Y@2 Z AA AB AC AD@2 AE AF AG AH AI AJ@2 AK AL
  AM@5 AN AO@3 AP@2 AQ AR AS@2 AT AU AV@2 AW@2 AX@3 AY AZ@2 BA@2 BB BC BD@2 BE BF@3 BG BH BI@3 BJ BK BL@2 BM BN BO BP
  BQ@2 BR@5 BS BT BU@2 BV@2 BW@4 BX@2 BY@2 BZ CA CB CC@2 CD CE@4 CF@2 CG@2 CH CI CJ@2 CK@2 CL@3 CM@2 CN@3 CO@7
>`.pickRestart({
  A: "[[c3,g3]@12 ~ [c6,c7]@2 ~@7 [g4,c5,f5,d6,a6,d7]@26, ~@4 [f4,bb4,eb5] ~@11, ~@13 f6 ~@34]/2", // C5 C Dm7 Ebsus2
  B: "~ [c3,g3]@11 ~ f6@3 bb6 ~@4 [c5,g6,a6,d7] ~@2, ~@12 [f4,bb4,eb5]@4 ~@5 [g4,f5]@2 ~, ~@13 [c7,f7]@5 ~@6", // C5 Csus2 Ebsus2 G7 F5
  C: "[~@3 g6@12 ~@2 f6@5 ~@5 [c3,g3] ~@8 [f4,bb4,eb5]@2 ~@16 a5@9 [g5,a5,d6]@8 ~, ~@3 [g4,c5,f5,a6,d7]@20 g6@21 ~@28, ~@15 [g6,c7]@8 c6@30 ~ [bb5,f6]@18, ~@24 d6@20 ~ [g4,c5,f5]@27]/3", // C5 Ebsus2 Gsus2 Dm7 C5 Bb5 Csus4
  D: "[~@12 [f4,bb4,eb5]@2 ~@13 c6@2 ~@4 eb6@2 ~@5 g6@5 db6@2 ~ e6@2 ~@2 gb6@2 ab6@2 ~@2 a6@2 ~ b6@2 ~ db7 ~@2 [ab4,db5]@2 ~ db7 ~, [g5,c6]@28 ~@8 f6@10 ~@20 e7@3 ~@3, f5@21 [g4,c5]@24 ~@2 [b4,e5]@12 ~@8 gb5 ~@4, ~@22 f5@24 ~@2 gb4@11 ~@13]/3", // Ebsus2 Db5 C5 E5
  E: "~ eb7@2 ~ [gb4,b4,e5,db7]@2 ~ b6@3 ~ ab6 db7@3 ~ [ab4,db5,gb5,b6]@2 ab6@4 gb6 ~", // Gbsus4 Abm7
  F: "[c3,g3]@2 ~@8 g6@2 [f4,bb4,eb5]@4 bb6@2 g6@2 ~@2 f6 ~, bb6@6 c7 ~@5, ~ d7 ~@2", // C5 Ebsus2
  G: "ab6@2 ~@2 b6@3 gb6@4 ~@8 db6@5, [gb4,b4]@23 ~, e5@7 ~ ab6@3 ~, ~@6 b6@5 ~", // B5
  H: "[[c3,g3]@2 ~@5 f6@2 ~@4 f4@2 ~@2 d6@2 ~ g6@2 ~@3 eb6@3 ab6 ~@2 db7@2 ~ eb7@2 ~ gb7 ~@2 ab7@2 ~ db8 ~@2 eb8 ~, ~@5 c6@4 ~@2 bb6@3 ~@8 c7@7 ~@19, ~@6 [bb4,eb5] ~@4 [ab4,db5,gb5]@9 ~@4]/2", // C5 Eb5 Dbsus4
  I: "g8@4 [f4,bb4,eb5,d8] ~ f8@2 ~@2 eb8@2 d8@2 ~@2 c8 ~ ab7@2 ~ c8@2 ~", // Bb
  J: "g7@4 ~@14 d6@5 ~, ~@4 [g4,ab4,c5]@19 ~, ~@16 c6@7 ~", // Abmaj7
  K: "[~@18 [f4,bb4,eb5]@3 ~@7 d5@2 ~@10 c6@2 ~@4 b5@2, [c3,g3,f5,bb5,eb6]@22 ~@6 c5 ~@7 [f4,b4]@12, ~ g5@21 [g5,ab5,c6,d6]@15 eb5@11]/2", // Ebsus2 Cm7 Fdim Gsus4
  L: "[~@4 a4 eb4 ~@19 f5@4 g5@2 ~@6 ab5@2 ~@2 bb5@7, c6 ~, ~ g5@24 ~@23, ~@4 d5@2 ~@7 [eb4,a4,d5]@26 ~@9]/2", // D
  M: "[~ [f5,c6]@9 eb6@2 ~@4 [ab4,db5] ~@7 [g4,c5,db5]@12 [g4,c5,db5,f5,c6,ab6,c7]@12, ~ [ab4,c5,db5]@12 [f5,c6]@23 ~@12, ~@8 c5 ~@15]/2", // F5 Db5 C Dbmaj7 F5
  N: "[[g4,bb4,c5,f5,g5,c6,g6]@10 [g4,bb4,c5,f5,c6,f6]@17 ~ [g4,bb4,c5,g5,c6,g6] ~@8 c6@5 [g5,c6,g6]@5 ~, ~@18 c5@5 ~, ~@37 [g4,bb4,f5,f6]@10 ~]/2", // Gm7 C7 C5 Gm7
  O: "~@2 f6, [ab4,c5,d5,ab5,c6,ab6]", // Dm7b5
  P: "[~@4 g3@2 ~@6 [f4,b4,eb5]@14 ~@2 [ab4,c5,d5,d6,ab6,d7]@8 ~ [ab4,c5,d5,f6,c7,f7]@11, [g5,b5,eb6,g6]@13 ~@11]/2", // Fm7b5 Dm7b5 Gaug
  Q: "~@19 [f6,c7,f7]@5, ~ [eb6,bb6,eb7]@23, ~@4 [eb4,g4,a4,d5]@19 ~", // F5 Eb5 Ebmaj7
  R: "~@5 [gb6,gb7]@2 ~ g6@5 ~@6 [g4,c5,eb5,eb6,eb7]@3 ~@2, ~@5 [g4,c5,eb5,db7]@7 ~@12, ~@7 g7@4 ~@13", // Gb Cm
  S: "[~ [gb4,c5,f5,gb6,db7,gb7]@11 [gb4,c5,f5,eb6,bb6,eb7]@9 ~ [f4,ab4,c5,d5,d6,ab6,d7]@15 ~@2 f4 [eb6,ab6]@2 ~@6, ~@39 [ab4,c5,d5,ab5]@2 ~@7]/2", // Gbmaj7 Cm7b5 Dm7b5 Ab5 Dm7b5
  T: "~@16 c6@2 d6@3 ~@3, [f4,b4,eb5,g5,b5,eb6,g6]@19 ~@5", // Ebaug
  U: "[[c3,g3]@12 [f4,bb4,eb5]@8 ~@16 [f4,b4,eb5]@4 c6 ~@5 b5 ~, [f5,bb5,eb6]@15 ~@7 [ab4,c5,d5,g5,ab5,c6,d6]@16 ~@10]/2", // C5 Ebsus2 Fm7b5 Ebsus2 Abmaj7
  V: "~ [c3,g3]@2 [f4,bb4,eb5,f5,g5]@3, ~ [g5,c6]@12 ~@11", // C5 Eb C5
  W: "~@5 f5@2 bb5@3 c6@3 ~@3 [gb5,db6,e6]@8, ~ [bb4,c5]@10 ~@5 [a4,db5,d5]@3 ~@5", // Gb7 Bbsus2 Dmaj7
  X: "[~ [f5,c6,eb6]@10 ~ c6@3 ~@4 eb6@3 ~@6 [g4,db5]@2 ~@6 [g4,db5]@10 g5 ~, c5@23 ~@25, ~ [ab4,db5]@23 ~@24, ~@11 f5@2 ~@10 [f5,c6]@25]/2", // F7 Gdim Db5 F5
  Y: "[[ab3,eb4,bb5]@3 ~ g5@2 ~@18 g5@2 f5@2 ~ g5@2 ab5@2 ~@2 bb5@2 c6@3 ~ d6@2 eb6@3 ~@2, ~@3 ab5@2 ~ bb5@15 ~@2 ab5@3 ~@22, ~@8 c5@13 ~@3, ~@17 [g4,bb4]@26 ~@5]/2", // Absus2 Gm
  Z: "~@4 [gb4,c5] ~@11 [gb4,c5]@6 gb6@2, gb6@12 ~ eb6@10 ~", // Gbdim
  AA: "~@4 [eb4,a4] ~@5 eb6@2 ~@3 [a4,d5]@9, f6@5 ~ c6@6, ~@4 d5@2 ~@9 eb4 ~@8", // Ebdim D5
  AB: "~@4 [gb4,c5,ab6]@2 ~@12 b6@5 ~, ~@4 c6 ~@7 [f4,b4,eb5,b5,eb6,g6]@11 ~", // Ab7 Ebaug
  AC: "~@13 [eb6,bb6,eb7]@4 ~@2 [f6,f7]@3 ~@2, [eb4,a4,d5,c6,g6,c7]@17 ~ c7@2 ~@4", // Eb5 F Am7b5
  AD: "[~ a4@3 d7@2 ~@7 [a4,eb5,ab5,gb6,db7,gb7]@9 b6@3 c7@10 ~@2 bb6@6 [d6,bb6,d7]@2 ~@3, ~ [d5,eb5,g5,g6,db7,g7]@5 ~@16 [ab4,d5,g5,f6,f7]@13 ~@2 [ab4,d5,g5,eb6,eb7]@8 ~@3]/2", // Ebm7b5 Gm Eb7 Ddim Abmaj7
  AE: "~ [g4,bb4,c5,eb6,bb6,eb7]@4 ~@5 bb6@2 ~ d7@2 ~@2 bb6@2 ~ g6@2 ~ f6, f5 ~@5", // Cm7
  AF: "~ bb6@2 ~ ab6@2 ~ eb6@2 ~ b5@2 ~ bb5 ~@3 ab5@2 g5@2 ~ f5@2",
  AG: "~ [c3,g3,eb5]@11 ~ [c4,f4,bb4,c5]@3 ~ f5@2 bb5@3 ~ [eb4,ab4,db5]", // Cm Fsus4 Dbsus2
  AH: "~ eb5@3 ~ ab5@2 db6@3 ~ [gb4,b4,e5] ~ ab5@4 db6@2 gb6@4 ~", // Esus2
  AI: "~ g6@4 d6 ~ f6@3 ~ f4 ~ d6@2 ~@2 c6@2 db6@2 ~@2 f6, [c3,g3]@2 ~@8 [bb4,eb5,eb6]@3 ~@11", // C5 Eb5
  AJ: "[~ b5 ~@3 [db5,d5]@2 db6@3 ~ a5@2 gb5@2 ~ gb4 ~@2 ab5@4 e5@2 ab5@3 ~ [bb3,ab4] ~ f5@3 ab5@3 bb5@2 ~ [gb4,b4,e5] ~@2 db6@2 ~ e6@2, ~@4 [gb5,e6]@2 ~@11 b5@4 ~@19 b5@3 ~@5, ~@5 a4 ~@23 c5@2 ~@17]/2", // Dmaj7 Bb7 Esus2 Gb7
  AK: "~ gb6@2 ~ [g4,c5,f5,g6]@2 ~ a6@2 ~ b6@2 ~ db7@2 ~ [ab4,db5,gb5] ~@2 a6@3 f6@2, ~@8 b6 ~@3", // Csus4 Dbsus4
  AL: "~ ab6@2 ~ c7@3 g6@2 ~ [ab3,eb4] ~@2 ab6@2 ~ f6@2 ~ eb6@2 ~ [g4,bb4,c5] ~, ~@5 bb6 ~@5 [f5,g6]", // Ab5 C7 Fsus2
  AM: "[~ f6 ~@2 eb6@2 ~ c6@2 ~ ab5@3 g5@3 f5 ~@2 c6@2 ~ ab3 ~ f5@3 ~ g5@2 ~ ab5@3 ~@3 b5@4 db6@2 eb6@3 f6@3 g6@2 ~ ab6@2 ~ bb6@2 ~ b6@3 db7@2 ~@2 [f4,b4,eb5]@2 f7@3 g7@2 ~ f7@2 ~ d7@2 ~ c7@2 ~ f7@2 ~ d7@2 ~ c7@2 ~ g6@2 ~ eb7 ~@2 d7@2 ~ bb6@2 f6@2 ~@2 [eb4,a4,d5,d7]@2 bb6@4 ~@2 a6@3 ~ c7@2, ~@22 [d3,ab5,c6]@3 ~@10 [f4,b4,eb5]@27 ~@8 [ab4,c5,d5]@8 ~@4 b4@9 ~@29, ~@23 g5@3 ~@8 bb5@2 ~@28 eb7@2 ~@16 [f4,eb5]@6 ~@6 [eb4,a4,d5]@11 ~@15]/5", // Fm7b5 D Dm7b5 Fm7b5 Dm7b5 F7 D
  AN: "bb6@4 ~@2 g6@3 ~@4 g6@3 ~ [g4,b4,c5,eb5]@2 ~@5, a3 ~@11", // Cm
  AO: "[~ g6@4 a6@2 bb6@2 ~@2 [g4,b4,c5] ~@6 c6@3 ~@2 [gb4,c5]@2 ~@2 gb6 ~ c6@2 [gb4,c5,bb6]@3 ~@2 eb6@2 c6@3 [gb4,c5,ab6]@3 f6@2 ~ bb5@2 [f4,ab4,c5,d5]@2 ~@4 ab5@3 [f4,f6]@3 ~@2 b5@2 ab5@2 ~@3 [c3,g3] ~, ~@11 [eb5,b6]@3 ~@2 g6@2 ~@5 c7@4 ~@22 g6@4 ~ b5@3 ~ [b4,eb5]@2 ~@2 bb5@4 ~@6, ~@17 eb6@2 ~@9 eb6@2 ~@5 gb6@2 ~@9 d6@2 ~@5 eb6@2 ~@6 eb6@3 ~@3 eb6@5]/3", // Cmaj7 Gbdim Cm7b5 Ab7 Dm7b5 F C5 Abm …
  AP: "[~ b5@3 d6@4 ~@2 [eb5,c6,d6]@3 bb5@4 g5@2 eb5@3 ab3 c5@2 d5@3 d3@8 ~ f5@3 g5@2 ~ ab5@3 bb5@2, ~@10 [f4,bb4]@9 ab4 ~@16 [f4,b4,eb5]@6 ~@6]/2", // Cm Bb5 Fm7b5
  AQ: "~ b5@2 ~ [eb4,d5,db6]@2 ~ e6@3 ~ gb6 ~@2 b6@2 ~ [ab4,db5]@2 e7@2 ~ gb7@2, ~@4 a4 ~@11 db7@2 ~@6, ~@17 gb5 ~@6", // Db5
  AR: "~ g7@3 c5 [ab4,d5,d7] ~ gb7@2 ~@2 f7@2 e7@2 ~ [f4,b4,eb7]@2 ~ d7@2 ~ db7@2, ~@16 eb5 ~@7", // Abdim Fm7b5
  AS: "[~ c7@2 ~ [bb3,f4,bb6]@2 ~ ab6@2 ~ eb7@2 ~ bb6@2 ~ [bb4,eb5] ~@2 eb6@2 ~@2 d6@2 db6@3 [ab4,db5,gb5]@8 ~ [bb4,eb5,ab5]@3 c6@2 ~ f6@2 ~ ab6 ~, ~@15 ab6@2 ~@31, ~@8 f6 ~@15]/2", // Bb5 Eb5 Dbsus4 Ebsus4
  AT: "~ a6@3 [g4,b4,db5,gb5,db7]@3 e7@2 ~ a7@2 ~ e7@2 ~ [g4,bb4,f5,db7]@2 ~ a6@2 ~ bb6 ~, ~@16 c5 ~@7", // Gmaj7 Gm7b5
  AU: "eb7@2 ~@2 [bb4,f5]@2 bb6@3 ~ f6@2 ~ eb6@3 [ab4,bb4,c5,g6]@3 d6@2 ~ f6@2, ~ c7 ~@6, ~@4 [g4,c5] ~@19", // Bb5 Abmaj7 C5
  AV: "[~@3 [d3,ab3]@9 [ab4,c5,d5,c6]@3 ~@2 f6@2 ab6@3 ~ bb6@5 [g4,a4,bb4,d5] ~@3 g6@3 ~@2 c6@3 bb4 [g4,a4,d5] ~@6, ~ c6@11 ~@16 f6@2 ~ gb6@2 ~@15]/2", // Ddim Dm7b5 Gm Gsus2
  AW: "[~@2 g6@4 ~ ab6@3 ~ [ab4,g6]@3 f6@4 ~ ab6@3 ~@6 [c3,g3]@2 ~@4 eb6@2 ~ d6@2 ~@2 [f4,c6]@2 d6@3 eb6 ~, f6@2 ~@9 [d5,g5] ~@29 [bb4,eb5] ~@6, ~ gb6@2 ~@20 g6@7 ~@18]/2", // Abmaj7 C5 F5 G5 Eb5
  AX: "[~@2 gb6@2 ~ ab6@2 b6@3 ~ db7@2 eb7@3 [a4,eb5]@2 ~ e6@2 ~@2 f6@2 g6@3 ~ bb6@2 db7@2 ~@2 [ab4,d5,g5] ~ b5@3 ~ db6 ~ eb6@3 ~ [ab4,db5,gb5]@3 [a6,b6]@2 ~ db7@2 eb7@2 ~@2 [gb4,gb7]@2 g7@2 ~@2 gb7@2 db7@3 b6@2, ~@16 ab5 ~@30 gb6 ~@10 [b4,e5]@2 ~@12]/3", // Adim G Dbsus4 Asus2 Gb E5
  AY: "~ c7@2 ~ [d3,ab3] ~@2 d7@2 ~@2 [f6,g6] ~ bb6@3 [f4,b4,eb5,eb7]@3 db7@4 f6, ~@4 f7@3 ~@17", // Ddim Fsus2 Fm7b5
  AZ: "[~ [c3,g3,c7,f7]@11 ~ [f4,bb4,eb5,eb7,g7]@9 ~ [ab4,c5,g6,c7,f7]@12 [f4,eb5,bb6,eb7,bb7] ~@5 [f4,b4,eb5,a6,eb7,a7]@7, ~@22 d5@12 ~ b4@2 ~@11]/2", // Csus4 Eb Fm Ebsus2 F7
  BA: "[~ [a6,d7,f7]@11 ~ [bb4,g6,eb7,g7]@9 ~@3 d7@10 [c5,db5,f5,eb6,bb6,eb7] ~@5 [ab4,c5,db5,db6,db7]@7, ~ [c3,g3]@2 ~@9 [f4,eb5]@9 ~ [g4,bb4,c5,f5,f6,db7,f7]@13 ab4@2 ~@3 f5@8]/2", // Dm Eb Bbm Dbmaj7 C5 F7 Gm7b5
  BB: "~@5 [ab3,eb4]@6 g6@2 ~@3 [ab4,c5,db5,f5]@6 ab6@2, ~ [c6,ab6,c7]@11 ~ bb6@7 ~@4", // Ab5 Dbmaj7 Fm
  BC: "~ g6@3 f6@2 ~ eb6@2 ~ c6@2 ~ ab5@4 ~ g5@3 ~ bb5@2, ~@17 f5@2 ~@5",
  BD: "[~ g5@3 [ab3,eb4]@2 ~@4 eb5@2 ~@5 ab3@2 ~@6 d4@4 d5@2 eb5@2 ~ f5@5 ~ g5@2 ab5@3 ~ [d4,g4,ab4,c5,bb5]@2, ~@13 c5@14 ~@21, ~@17 eb4 ~@30]/2", // Ab5 Gm
  BE: "~@4 c6@2 d6@3 ~@7 [gb4,c5] ~@2 f6@3 ~ c6, ~@5 eb6@4 ~@3", // Gbdim
  BF: "[~ gb6@2 ~ [f4,db6]@2 ~ ab5@3 ~@3 d6@3 ~ gb4@2 ab6@3 ~ eb6@2 bb5@2 ~ [b4,e5] ~@2 e6@3 ~ b5@2 gb6@3 ~ [ab4,db5,gb5] ~ e6@2 ~@2 b6@2 gb6@2 ~@2 [eb4,a4,d5] ~ db6@2 ~ e6@2 ~ gb6@2 ~@2 [ab4,a6]@2 b6@2 ~ db7@2, ~@4 [b4,e5] ~@6 g6@4 ~ a5@2 ~@11 a6@4 ~@8 b6@2 ~@9 b5@2 ~@18, ~@17 c5 ~@10 f4@2 ~@35 [db5,gb5] ~@6]/3", // Db E5 Dbsus4 D Amaj7 E5 Gb5
  BG: "~ eb7@2 ~@2 d7 ~@2 db7@3 b4 gb4 b6@2 ~ e7@2 ~ a6@2 ~ [gb5,e7]@2, ~@11 c7@2 ~@9 [ab4,db5] ~", // Gb7 Db5
  BH: "~ b6@3 e6@2 ~ ab6@2 ~ [gb4,c5] ~@2 gb6 ~@2 bb6 ~ ab6@3 ~ [eb4,a4,d5,eb6] ~, ~@5 bb6 ~@6", // Gbdim D
  BI: "[~ db6@2 ~ gb6@2 ~ eb6@3 ~ [ab3,gb4] ~@4 e6@2 ~ d6@3 ~ [ab3,gb4]@2 bb5@3 ~ db6@3 ab5@2 ~ db6@3 bb5@3 [ab3,f5]@2 eb5@2 ~@2 db5@2 ~@3 [c3,g3]@8 f5@3 ~ c4 f4 ~@2 g5@2 bb5 ~, ~@11 b5@5 ~@6 a5@2 ~@17 eb4 ~@4 eb5@2 ~ c5@11 ~@4 [bb4,d5]@3 eb5@2 ~@3]/3", // Ab7 Db C5 Bb
  BJ: "~ d6@4 [d4,g4,ab4,c5] ~ f6@3 ~ d6 ~ eb6@3 [f4,b4,eb5,c6]@3 d6@2 ~ eb6@2", // Csus2 F7
  BK: "~ f6@3 eb4 [g4,a4] ~ bb6@4 ~@5 [f4,bb4,eb5]@6 d7@2, ~@4 [d5,g6]@2 ~@6 c7@11 ~", // Gsus2 Ebsus2 G5
  BL: "[~ bb6@2 ~ [eb4,d5,g6]@2 ~ f6@2 ~ c7@2 ~ a6 ~@2 [eb4,d5,g6]@2 ~ f6@2 ~ b6@3 a6@2 ~ [a4,d5,gb5,gb6]@2 ~ e6@2 ~ bb6@2 ~ gb6@3 [ab4,db5,f5] ~@2 gb6@3 ab6@2, ~@4 a4 ~@11 a4 ~@23 c5@2 ~@6]/2", // Ebmaj7 D Db
  BM: "~ eb6@3 [gb4,b4,gb6]@2 ~@6 db6@3 ~ a5@3 gb5@2 ~ b5@2, ~@4 e5 ~@19", // B5
  BN: "~ ab5@2 ~ b5@2 e6@3 ~@7 [e4,ab4] ~@5 e6@2, ~@4 [ab5,ab6]@3 ~", // E Ab
  BO: "~ ab6@3 [e4,ab4] e6@2 b5@4 ~@2 ab5@3 [e4,ab4]@2 g5@3 c6@2 eb6, ab5 ~@11", // E
  BP: "~ [ab5,ab6]@3 [f3,c4] ~@2 gb6@4 ~@2 [g5,g6]@3 [ab4,g5]@2 ~@6, ~@6 gb5@4 ~@6 d5 ~@7", // Ab F5 G Abmaj7
  BQ: "[[g4,bb4,c5,bb5,f6]@12 ~ [g4,bb4,c5,f5,f6]@4 bb6@2 d7@3 ~ [gb4,c5,f6,db7,f7]@2 d7 ~@2 [gb4,c5,ab6,eb7,ab7]@7 ~@2 g6@2 d7@2 ~@2 [f4,b6,b7]@4 ~, ~@35 f4@5 ~@8, ~@12 db7 ~@3, ~@37 [b4,eb5,g7]@4 ~ [b4,eb5]@4 ~@2]/2", // Gm7 Gbmaj7 Ab7 Fdim Baug B
  BR: "[~ c7@3 c7@2 ~ c7@2 [g7,c8]@2 ~@4 g7@2 ~@2 g7@9 ~ [gb4,c5,eb7,bb7,eb8]@12 [gb4,c5,d7,a7,d8]@12 [a4,eb5,c7,gb7,c8]@12 [ab4,d5,g5,bb6,gb7,bb7]@11 ~ [g4,bb4,c5,f5,d7,g7,bb7,d8] ~@7 [g4,bb4,c5,f5,bb6,bb7]@9 [f4,ab4,c5,d5,ab6,eb7,ab7]@12 f4@6 ~@3 [d6,d7]@2 ~@3, ~ [eb4,g4,a4,d5]@11 [g7,c8]@2 c7@3 c7@10 ~@79 [c6,g6,c7]@11 ~@3, ~ [g7,c8]@5 [g7,c8]@3 ~@2 c7@2 [eb4,g4,a4,d5]@15 ~@78 [b4,eb5]@8 [b4,eb5,a6]@2 ~@4, ~@15 c8@12 ~@79 d6 ~@5 f4@4 ~@4]/5", // C5 Cm7b5 D7 Adim Gm Gm7 Fm7 D …
  BS: "~ eb4@12 [eb4,g4,bb4,d5,f6,g6,c7]@11, [g4,bb4,d5,eb6,bb6,eb7] ~", // Ebmaj7
  BT: "~ f4@9 ~@2 [b4,eb5,c6,ab6,c7]@4 [f4,b4,eb5,b5,b6]@8, ~ [ab4,c5,d5,d6,ab6,d7]@11 ~@12, ~@5 f4@3 ~@4", // Ab Fm7b5 Dm7b5
  BU: "[[eb4,g4,a4,d5,c6,f6,g6,c7]@9 ~ [eb4,g4,a4,d5]@8 [eb4,g4,a4,d5,g5,c6,f6]@9 ~@3 eb6@6 [eb5,bb5,eb6,bb6]@5 ~ [a5,d6,a6]@5 ~, ~@9 [g5,c6]@8 ~@10 [f4,bb4,eb5,bb5,g6]@8 ~ [f4,bb4]@2 ~@10]/2", // Dm7 Ebmaj7 Dm7 Eb5 D5 C5 Eb Bb5
  BV: "[~ db6@10 ~@2 [bb6,eb7]@3 ~@8 [b5,gb6]@3 ~@2 b5@6 ~ b5@4 ~ db6@7, [ab4,c5,db5,f5,ab5,ab6]@11 [ab4,c5,db5,f5]@12 [g4,db5]@12 g4@13, ~@16 eb7@8 ~@12 e6@11 ~, ~@17 ab6@8 ~@3 db6@7 [b4,db5]@3 ~@2 b5@7 ~]/2", // Eb5 B5 Dbmaj7 Gdim Bsus2
  BW: "[[g5,c6,eb6,g6]@12 ~@4 f5@2 bb5@2 ~@2 c6@2 ~ eb6 ~@2 f6@2 ~@10 [g4,bb4,c5]@7 c7@2 ~@4 [d3,ab3]@8 [ab4,c5,d5]@10 ~@2 eb7@2 b6 ~ d7@2 a6@3 bb6@2 db7@2 ~@8 b6@2, [ab2,eb3]@2 ~@10 [g4,bb4,c5]@28 ~@31 [f4,b4,eb5]@25, ~@31 bb6@17 ~@48, ~@17 c7@6 ~@25, ~@37 [f6,eb7]@12 [g6,c7,f7]@12 ~@35]/4", // Cm C7 Ddim Dm7b5 Ab5 C7 Fm7b5 F7 …
  BX: "[~ d7@2 ~ d7@2 c7 b6@2 bb6@2 ~@2 g6@2 gb6@2 f6 ~@2 d6@2 ~ c6@2 ~@3 [c3,g3]@9 ~@9 g5@2, c7@2 ~ eb7@3 ~@5 a6@2 ~@28 [f4,bb4,eb5]@7, ~@12 ab6@2 ~@5 eb6@3 db6@2 ~ bb5@12 [g5,bb5,d6,f6]@10 ~]/2", // C5 Ebsus2 Gm7
  BY: "[~ b5@2 ~@5 eb6@2 ~ g6@2 b6@2 ~@2 d7@2 eb7@2 ~@2 f5@5 ~ bb5@2 db6@3 ~ eb6 ~ f6@3 bb6@2 ~ db7@2 ~ [ab4,c5,d5] ~, ~@2 d6 ~@8 gb4@9 ~@4, ~@5 [g4,b4,c5]@14 ~@3 c5@20 ~@6]/2", // Dm7b5 Cmaj7
  BZ: "~ g5@3 ~ ab5@2 c6@3 [ab4,c5,d5] ~@2 f5@3 ab5@2 ~ f6@3 [f4,b4,eb5]@2", // Dm7b5 Fm7b5
  CA: "~ f5@3 ab5@2 f6@3 ~ [f4,b4,eb5]@3 ~@3 ab5@2 ~ f6@3 [eb4,a4,d5] ~, ~@13 f5@5 ~@6", // Fm7b5 D
  CB: "~ g5@3 ~ f6@2 [eb4,a4,d5]@2 ~ g5@2 ~ f6@3 [f4,bb4,eb5]@2 ~ g5@3 f6@2", // D Ebsus2
  CC: "[~ a4@2 ~ g5@2 ~ eb6@3 d5 c5 g5@3 ~ d6@2 [f4,b4,eb5]@3 ~@2 g5@2 c6@3 [a4,d5] ~@2 g5@3 b5@2 ~ g3@2 ~ g5@2 c6@4 [bb4,eb5] ~, [eb4,d5]@2 ~@9 ab4@2 ~@15 eb4@2 ~@6 c3@2 ~@8 f4@2]/2", // Fm7b5 D5 Eb5 Ebmaj7
  CD: "g5@3 ~@4 [c3,g3]@2 ~ g5@2 c6@4 [ab4,db5]@2 ~ db6@4 ~, ~@4 c6@7 ~@5 [c5,f5] ~@7", // C5 Db5 F5
  CE: "[~ c6@5 ~ eb6@3 ~ [ab4,db5]@13 ~ [g4,db5]@2 ~@10 bb5@4 [g4,db5]@2 g5@3 ~ f5@3 g5 ~ f5@2 g5@2 f5@2 g5@2 ~ [g4,bb4,c5,g5]@2 ~ f5@2 ~@4 [g4,bb4,c5]@12 [g4,bb4,c5]@2 ab5@4 ~@2 a5@3 ~@3, ~ [ab4,c5,db5,f5]@9 c5@13 ~@11 [g4,db5]@5 ~@8 [g4,bb4,c5]@12 ~@37, ~ b5@3 ~@6 c6@25 ~@32 f5@16 ~@13, ~@11 f5@22 ~@27 f5@3 ~@3 g5@2 ~ g5@2 ~@25]/4", // Db5 Gdim C7 Dbmaj7 Gdim C7
  CF: "[[f4,bb4,eb5,ab5]@12 ~ [ab4,d5,g5]@8 ~ [eb4,g4,c5,f5,bb5]@19 db6@2 d6@5, c6@5 ~@7]/2", // Fm7 G Cm7
  CG: "[~@4 [gb4,c5,f5,bb5]@2 ~@7 [f4,b4,f5,bb5,eb6]@9 [eb4,a4,d5,g5,c6]@19 eb6@2 f6@4 ~, ~ f6@21 ~@26]/2", // Gbmaj7 Ebsus2 Am7b5
  CH: "~ [a4,d5,eb5,c6,eb6,g6]@11 ~ [a4,eb5,b5,db6]@11, g5@11 ~ [ab5,gb6]@11 ~", CI: "[ab4,d5,g5,c6]",
  CJ: "[~@2 bb6@12 [gb4,b4]@2 ~@24 [eb6,eb7]@7 bb6, ~ [eb3,bb3]@2 ~@11 e5 ~@7 [gb4,b4,e5]@25 ~, ~ [eb6,eb7]@19 ~@4, ~@34 bb6@13 ~]/2", // B5 Eb Eb5 Esus2 Eb
  CK: "[~ [eb3,bb3]@2 ~@10 [ab4,db5,gb5]@2 ~@27 bb6@3 ~ ab6 ~, ~ eb7@32 eb7@12 ~@3, ~ eb6@21 [gb4,b4,e5]@24 ~@2, ~@28 db7@11 db7@6 ~@3]/2", // Eb5 Dbsus4 Esus2
  CL: "[~ bb6@2 ~ eb7@3 db7@3 ab6@2 ~ gb6@2 ~ [gb4,b4,e5,bb6]@3 ab6@2 ~@2 eb6@2 db6@2 ~@2 gb6@3 eb6@2 ~ bb5@2 ~@4 [gb4,e5]@3 ~@3 g5@2 c6@2 ~@2 [eb3,bb3]@2 f6@2 ~ g6@3 c7@3 f7@3 [c5,f5]@2 ~@3, [eb3,bb3]@2 ~@26 [gb4,e5]@3 ~@9 b4@2 ~@25 g4 ~@4, ~@29 b4@2 ~@6 d6@9 ~@6 d6@2 ~@18]/3", // Gb7 Eb5 F5 Eb5 Gb7
  CM: "[~ [a4,d5,g5]@10 gb7@2 a7@2 ~@2 a7 ~ e7@2 ~@2 d7@2 ~ a7@2 ~ b7@3 a7@3 d7 ~ [g4,c5,f5,a7]@2 ~@4 a7@2 ~@3, ~@15 [a4,d5,g5]@2 ~@8 eb3@2 ~@21, ~@16 gb7@2 ~@23 d8@4 ~@3]/2", // Dsus4 F Dsus4
  CN: "[[ab4,db5,gb5] db8@2 ~@2 c8@3 b7@2 ~ [gb4,b4,a7]@2 ~ bb7@2 ~ gb7@2 ab7@2 ~@5 b7 ~ db8@2 ~ e8@3 [eb3,bb3]@2 ~ [a7,a8]@2 ~@2 eb8 ~ db8@3 ~@3 bb7@2 ~ eb8@3 db8@2 ~@3 bb7@3 ~ eb8@2 db8@4 ab7@2, ~@4 db8@3 ~@4 e5 ~@10 bb7@2 bb3@2 ~@22 [db3,ab3]@2 ~@9 [gb4,b4,e5]@2 ~@11, ~@23 eb3@2 a7@2 ~@13 e8@3 ~@4 a7@2 ~@9 ab7@2 ~@12]/3", // Dbsus4 B7 Eb5 A Db5 Esus2
  CO: "[~@2 f8@3 d8@2 g7@2 ~@2 [g4,bb4,c5,f5]@2 ~ g7@2 ~@3 g7@2 f7@2 [ab4,db5,gb5] ~@3 c7 ~@2 e7@2 ~@12 d6@3 gb6@2 [eb3,bb3] ~@3 gb6 ~@7 [eb3,bb3,gb6,ab6,bb6]@2 ~@7 bb3@14 ~@29 [c8,bb8]@48 ~@7, [eb3,bb3,c8]@6 ~@4 g7@2 ~@6 a7@3 ~@2 eb7@2 db7@2 ~@2 db7@2 ~ gb7@3 db7@6 ab6@2 gb6@4 ~@23 [ab6,bb6]@18 c5@6 c6@7 c7@8 c8@2 gb8@48 ~@9, ~@11 c8@3 ~@2 c8@4 ~@6 b6@2 ~@6 e7@2 [gb4,b4,e5]@11 ~@5 [bb3,ab6,bb6]@2 ~@16 eb3@13 ~ eb3@5 gb5@8 gb6@7 gb7@8 ab8@48 ~@8, ~@37 b6@11 ~@22 c6@16 bb3@5 ab5@7 ab6@7 ab7@48 ~@15, ~@39 bb6@8 ~@23 gb6@17 gb4@6 bb5@7 bb6@8 db8@48 ~@12]/7", // Gm7 Dbsus4 Eb5 Ebm C7 Cm7 Absus2 Esus2 …
})).s("gm_piano").gain(0.56)

// bass · acoustic bass
const bass = note(`<
  A@2 B@2 C@2 D@4 E@2 B@2 F@2 G H@3 I J K@3 L@2 M N@4 O@2 P@3 Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AC AL
  AM AN AO@2 AP AQ@2 AR AS AT AU AV AW AX AY AZ BA@2 BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW
  BX BY BZ CA CB@3 CC CD CE CF CG CH CI@2 CJ CK@2 CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ DA DB DC@2 DD DE DF@2 DG
  DH@2 DI@2 DJ@2 DK@2 DL@2 DM@2 DN@2 DO@4 ~
>`.pickRestart({
  A: "[~ c2@10 ~@2 c2@9 g1@14 ~ g1@11]/2", B: "[~ c2@9 ~@2 c2@2 ~@7 g1@26 ~]/2", C: "[c2@10 ~@2 c2@3 ~@6 g1@27]/2",
  D: "[~ c2@10 ~@2 c2@2 ~@7 g1@27 c2@10 ~@2 c2@2 ~@6 g1@27]/4", E: "[~ c2@9 ~@3 c2@2 ~@6 g1@26 ~]/2",
  F: "[c2@10 ~@2 c2@2 ~@7 g1@20 ~ b1@6]/2", G: "c2 eb2", H: "[d2@12 g2@13 c2@12 eb2@10 c2@2 g2@5 gb2@6 f2@6 b1@6]/3",
  I: "bb1@6 c2@6 db2@5 d2@6 ~", J: "eb2@2 ~@2 eb2@2 db2@6 c2@5 bb1@6 ~",
  K: "[ab1@11 c2@10 ab1@2 eb2@5 ~ eb2@6 c2@5 ~ db2@5 ~ d2@11 ab1@2 g1@12]/3",
  L: "[d2@10 ab1@2 g1@6 d2@10 ~ d2@7 g1@6 b1@6]/2", M: "c2@6 eb2@5 ~ g2@5 ~ ab2@6",
  N: "[a2@6 a1@6 eb2@5 db2@6 d2@5 ~ gb2@6 a2@6 g2@5 ~ ab2@5 ~ f2@7 eb2@5 db2@6 d2@12 g1@12 ~, ~@30 d2 ~@17]/4",
  O: "[c2@10 ~@2 c2@7 ~@2 d2@15 ~ g1@11]/2",
  P: "[~ c2@10 ~@2 c2@3 ~@5 c2@14 ~ b1@10 ~ bb1@6 c2@5 ~ db2@5 ~ d2@5 ~@2]/3", Q: "eb2@6 g2@6 bb2@5 ~ a2@5 ab2",
  R: "~@3 ab2@2 g2@7 f2@6 e2@6", S: "eb2 c2 ab1 e2", T: "f2@6 c2@5 ~ bb1@6 d2@6", U: "eb2@6 eb1@6 bb1@6 eb2@5 ~",
  V: "d2@5 ab1@5 ~ g1@6 ~ b1@4 ~@2", W: "b1 c2 ~@2 c2@3 eb2@5 g2@6 eb2@6", X: "b1 gb2 eb2 b1",
  Y: "bb1@5 ~ f2@6 d2@6 bb1@5 ~", Z: "eb2 ~@5", AA: "~@3 g2", AB: "c2@5 ~ eb2@6 g2@5 ~ db2@6",
  AC: "d2@4 ~@2 ab2@6 g2@5 ~ b2@6", AD: "c3 ~ c3 g2@3 c2@3 gb2@3", AE: "f2@6 f1@5 c2@6 b1@6 ~",
  AF: "bb1@5 ~ f2@6 db2@5 d2@6 ~", AG: "eb2@5 ~ gb1@6 bb1@5 ~ g1@6", AH: "ab1@2 ~@2 ab1@3 bb1@5 c2@5 ~ db2@6",
  AI: "d2@5 ~ eb2@6 f2@6 db2@6", AJ: "d2@4 ~@2 d2@6 ab1@4 ~@2 ab1@5 ~", AK: "g1@6 b1@6 c2@5 ~ db2@6",
  AL: "c3@6 g2@6 c2@6 bb2@5 ~", AM: "a2@5 ~ g2@6 f2@5 ~ eb2@5 ~", AN: "d2@5 ~ gb2@6 a2@6 g2@4 ~@2",
  AO: "[ab2@4 ~@2 d2@5 ~ f2@5 ~ gb2@5 g2@6 ~ g1@5 ~ d2@5 ~ db2@6]/2", AP: "c2@6 g2@6 eb2@5 ~ db2@6",
  AQ: "[d2@6 ab1@5 g1@3 ~@3 b1@5 ~ c2@5 ~ eb2@6 ~ g2@5 gb2@6 ~, ~@16 g1@3 ~@29]/2", AR: "f2@6 eb2@6 db2@5 b1@6 ~",
  AS: "bb1@5 ~ c2@5 ~ db2@6 d2@5 ~", AT: "eb2@6 db2@5 ~ c2@6 bb1@6", AU: "ab1@5 ~ c2@6 bb1@6 db2@6",
  AV: "c2@5 ~ eb2@6 db2@6 f2@6", AW: "eb2@5 ~ db2@6 bb1@6 d2@6", AX: "eb2@5 ~ gb2@6 g2@6 gb2@6",
  AY: "f2@5 ~ gb2@5 ~ g2@6 db2@5 ~", AZ: "c2@6 eb2@6 g2@2 ~@3 gb2@6 ~, ~@16 g2@3 ~@5",
  BA: "[f2@6 c2@6 f1@6 bb1@5 a1@5 ~ bb1@6 ~ b1@5 bb1@6 ~]/2", BB: "eb2@5 ~ bb1@6 eb1@5 ~ db2@5 ~",
  BC: "d2@6 ab1@5 ~ g1@5 ~ b1@6", BD: "c2@5 ~ eb2@6 g2@5 ~ gb2@6", BE: "g2@5 ~ b2@6 d3@4 ~ d3@2 db3@5",
  BF: "c3@6 g2@6 c2@5 ~ g2@6", BG: "c3@6 g2@6 b2@6 gb2@5 ~", BH: "bb2 ~@4 ab2@6 ~ f2@5 e2@6 ~, ~@2 bb2 ~@9",
  BI: "eb2@5 g2@5 ~ bb2@6 ~ a2@6", BJ: "ab2@5 ~ g2@6 eb2@5 ~ c2@5 ~", BK: "bb1@5 ~ ab1@5 ~ c2@6 eb2@6",
  BL: "f2@6 db2@6 d2@6 ab1@5 ~", BM: "g1@5 b1@6 ~ d2@5 ~ db2@6", BN: "d2 ~@2 d2@3 f2@6 g2@5 ~ f2@6",
  BO: "g2 db2 c2 eb2", BP: "a2@6 a1@5 c2@6 db2@6 ~", BQ: "d2@5 ~ gb2@6 a2@6 g2@5 ~", BR: "ab2@5 ~ d2@6 f2@5 ~ gb2@6",
  BS: "g2@5 ~ b2@6 d3@2 ~@3 db3@6 ~, ~@15 d3@4 ~@5", BT: "c3 g2 c2 c3", BU: "ab2@5 gb2@6 ~@6 db2@5 ~@2, ~@12 g2@7 ~@5",
  BV: "c2 eb2 d2 f2", BW: "eb2 g2 gb2 f2", BX: "bb1@6 f2@6 db2@5 d2@5 ~@2", BY: "eb2@6 g2@5 ~ bb2@2 ~ bb2@2 a2@6 ~",
  BZ: "ab2 g2 f2 eb2", CA: "d2@5 ~ db2@6 d2@5 ~ eb2@5 ~",
  CB: "[~@5 c2@6 ~ bb1@6 d2@5 eb2@2 ~@2 eb2@2 d2@7 c2@5 db2@6 d2@6 ab1@6 ~ g1@6 b1@6, f2@7 ~@65]/3",
  CC: "c2@5 ~ eb2@6 g2@6 gb2@5 ~", CD: "g2 g1 d2 g2", CE: "gb2@6 b1@5 ~ bb1@5 f2@7", CF: "eb2@6 g2@5 ~ bb2@6 g2@6",
  CG: "ab2@6 gb2@6 g2@5 ~ b2@6", CH: "c3@6 c2@6 g2@6 gb2@5 ~",
  CI: "[ab2@5 ~ gb2@6 ~@5 db2@5 ~ c2@2 ~@2 c2@2 d2@6 eb2@6 f2@6 ~, ~@12 g2@7 ~@29]/2", CJ: "gb2@5 b1@6 eb2@6 ~ gb2@6",
  CK: "[f2@6 bb1@6 f2@5 db2@6 d2@6 ~ eb2@6 eb1@6 bb1@6]/2", CL: "ab1@5 ~ eb2@6 bb1@6 db2@5 ~",
  CM: "c2@5 ~ eb2@5 ~ db2@5 ~ bb1@6", CN: "d2@6 ab1@6 f1@5 ~ gb1@5 ~", CO: "g1@6 b1@6 a1@6 c2@5 ~",
  CP: "b1@5 ~ d2@6 ab1@5 g1@7", CQ: "b1@6 c2@6 eb2@5 g2@5 ~@2", CR: "a2@6 a1@6 c2@5 db2@6 ~",
  CS: "d2@5 ~ gb2@6 a2@5 ~ db3@6", CT: "d3@5 ~ c3@6 bb2@6 ab2@6", CU: "g2@6 f2@6 eb2@5 ~ db2@5 ~",
  CV: "c2@5 ~ d2@5 eb2@5 ~@2 db2@6", CW: "d2@5 ~ gb2@5 ~ g2@5 ~ b2@5 ~", CX: "c3@6 c2@6 g2@5 eb2@6 ~",
  CY: "gb2 f2 b1 f2", CZ: "bb1@5 ~ f2@6 c2@5 db2@6 ~", DA: "d2@5 ~ eb2@6 db2@6 c2@5 ab1",
  DB: "~@3 ab1@2 c2@6 bb1@5 ~ db2@6 ~", DC: "[c2@5 eb2@5 ~ db2@6 f2@6 c2@6 f1@6 c2@6 bb1@6 ~]/2",
  DD: "eb2@6 bb1@6 eb1@5 bb1@6 ~", DE: "ab1@5 ~ ab1@6 g1@5 b1@6 ~", DF: "[c2@5 eb2@6 g2@6 eb2@6 b1@13 eb2@12]/2",
  DG: "bb1@12 d2@11 ~", DH: "[eb2@8 ~@4 eb2@8 ~@2 db2@14 ~ db2@11]/2", DI: "[eb2@9 ~@3 eb2@8 ~ db2@15 db2@11 ~]/2",
  DJ: "[eb2@10 ~@2 eb2@7 ~@2 db2@14 ~ db2@11 ~]/2", DK: "[eb2@9 ~@3 eb2@8 ~ db2@13 ~@2 db2@11 ~]/2",
  DL: "[eb2@8 ~@4 eb2@7 ~@2 db2@14 ~ db2@11 ~]/2", DM: "[eb2@9 ~@4 eb2@7 ~@2 db2@14 ~ db2@11]/2",
  DN: "[~ eb2@9 ~@3 eb2@7 ~@2 db2@14 ~ db2@10 ~]/2", DO: "[eb2@3 ~@9 eb2@2 ~@7 eb2@68 ~@7, ~@21 db2 ~@74]/4",
})).s("gm_acoustic_bass").gain(0.56)

// drums · kick
const kick = s("bd").struct(`<
  A ~@2 B C ~ C ~ D C E C E D@2 E D E C D C F D E D C E C E D G C D@2 C D F C E@2 D C D E D C G ~ G E D G H E C E D C
  E@3 D C E D@3 E C D C E D C@2 E C E@3 D@2 E F E F D E D E D E@2 D@2 E D@2 F E@2 D@2 E@3 C E D E D E D E C D C F D E D
  C E C E D@2 E D@2 C D F C E@2 D C D E D C A C I H C F D E D C E C E D A ~@4
>`.pickRestart({
  A: "x ~@5 x ~@4 x", B: "~@11 x", C: "~@5 x ~@6", D: "x ~@4 x ~@5 x", E: "x ~@4 x ~@6", F: "~@2 x ~@5 x ~@2 x", G: "x",
  H: "~@5 x ~@5 x", I: "~@23 x",
})).gain(0.15)

// drums · snare
const snare = s("sd").struct(`<
  A B C D C E F G H I J K J K F L M N@3 ~@3 K O ~ P ~ P ~ Q K ~@6 R K ~@3 K@2 ~ S T S P ~ U ~ P ~ K V ~ P@3 ~@2 K O ~@2
  P ~@3 K W ~@2 K ~ P@2 K S ~ P ~ P ~@2 K X P ~ P@2 ~@2 K ~@3 P@2 ~@2 K P@2 ~ K W K O Y Z P ~@5 K O ~ P ~ P ~@2 K ~@6 P
  K ~@3 K@2 ~ F K F AA AB K AB AC H AA U K U K U ~@4
>`.pickRestart({
  A: "~@6 x ~@4 x", B: "~@5 x ~@2 x ~@2 x", C: "x ~@3 x ~@2 x", D: "~@3 x ~@18 x ~", E: "~@8 x ~@2 x",
  F: "x ~@5 x ~@4 x", G: "~@10 x ~ x ~@8 x!2 ~", H: "~@4 x ~ x ~@6 x ~@8 x ~", I: "~@16 x ~@4 x ~@2",
  J: "x ~ x ~@3 x ~@4 x", K: "~@11 x", L: "~@15 x ~@2 x ~ x ~ x ~", M: "x!2 ~ x", N: "~ x ~ x", O: "~@2 x!2 ~@8",
  P: "~ x ~@4", Q: "~@10 x ~@6 x ~@4 x ~", R: "~ x ~@2", S: "x", T: "~@10 x!2", U: "~@2 x ~@3 x ~@4 x", V: "x ~@10 x",
  W: "~@3 x", X: "x ~ x!2 ~@8", Y: "~@9 x!3", Z: "x!2 ~@22", AA: "~@7 x", AB: "~@13 x ~@8 x ~", AC: "~@21 x!2 ~",
})).gain(0.25)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@8 A ~@15 A ~@6 B ~@12 C ~@2 D ~@8 C ~@7 E ~@7 C ~@15 A ~@31 A ~@19 C ~@9 A ~@10
>`.pickRestart({
  A: "~@9 x!2 ~", B: "x", C: "~@2 x", D: "~@3 x", E: "~@8 x!2 ~@2",
})).gain(0.1)

// drums · low tom
const low_tom = s("lt").struct("<~@64 [~@5 x] ~@45 [~@5 x] ~@50>").gain(0.15)

// drums · hihat
const hihat = s("hh").struct("<[x!4]!46 x [~@3 x] [x!4]!108 [x ~@5 x ~@4 x] ~@4>").gain(0.35)
// … 37 more lines

More by Cole Porter