Strudelify

Take Five

Paul Desmond

KeyE♭ minorTempo178 bpm
0:00/0:00
// Take Five — Paul Desmond
// 178 bpm, 5/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 121 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(178/5)

// 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 2"
const piano = note(`<
  A B C D E F G C H I J K L@4 M@3 N O F G P Q I F G R@6 S@2 T@2 U@3 V W X Y Z AA AB AC AD AE AF AG@3 AH AI@3 ~ AJ@3 AK
  AL@4 AM AN AO AP AQ AP AQ AR AS B C AT AU AV AW AX AY AV AZ AW BA BB BC BD BE BB BF BG BH AV AW BI BJ BK AV AW BL BM
  BI BN BO BP BQ BR ~@9
>`.pickRestart({
  A: "~@19 eb2 ~@2 [gb3,bb3,eb4] ~", // Ebm
  B: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3,db4] ~@4 eb2 ~@2 [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  C: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3,db4]@2 ~@3 eb2 ~@2 [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  D: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 [ab3,bb3,db4] ~@4 eb2@2 ~ [gb3,bb3,eb4] ~, ~@7 db3 ~@4", // Ebm Bbm7 Ebm
  E: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~, ~@14 [bb3,db4] ~@9", // Ebm Db5 Ebm Bbm
  F: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 ~ [bb3,db4]@2 ~@2 eb2@2 ~ [gb3,bb3,eb4] ~, ~@7 [db3,ab3] ~@4", // Ebm Bbm Ebm Db5
  G: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,db4]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~, ~@14 bb3 ~@9", // Ebm Db5 Ebm
  H: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3,db4]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  I: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3,db4]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  J: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 ~ [ab3,bb3,db4]@2 ~@2 eb2@2 ~ [gb3,bb3,eb4] ~, ~@7 db3 ~@4", // Ebm Bbm7 Ebm
  K: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 ~ db4@2 ~@2 eb2@2 ~ [gb3,bb3,eb4] ~, ~@7 [db3,ab3] ~@4, ~@15 bb3 ~@8", // Ebm Db5
  L: "[~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 [ab3,bb3,db4]@2 ~@3 gb3@12 ~@3 f3@9 [bb3,db4,f4]@12 ~@3 [bb3,gb4]@9 [gb3,b3,eb4]@13 ~@5 [f3,b3,eb4]@6 [bb3,db4,f4]@5, ~@14 db3@5 [b3,eb4]@23 ~@16 g3@7 ~@31]/4", // Ebm Bbm7 Bbm Ebm B Fm7b5 Bbm B
  M: "[~@3 [bb3,db4] ~@7 g3@3 [g3,db4,e4]@4 ~ [gb3,b3]@12 ~@3 [f3,b3,eb4]@9 [bb3,db4,f4]@13 ~@5 [g3,db4,ab4,db5]@6 [gb3,b3]@5, ~@3 f4@2 ~@5 [db4,gb4]@4 ~@58]/3", // Bbm Dbdim B5 Fm7b5 Bbm Db B5 Gb5
  N: "~@3 [gb3,b3] ~@9 [f3,b3,ab4]@2 ~@7 [ab3,b3,eb4,g4] ~", // B5 Fdim Abm
  O: "~@5 [ab3,b3,eb4,g4]@3 ~@2 [ab3,d4,gb4]@3 ~ [ab3,d4,gb4]@5 ~@3 [gb3,bb3,eb4] ~", // Abm Abm7b5 Ebm
  P: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 ~ bb3@2 ~@2 eb2 ~@2 [gb3,bb3,eb4] ~, ~@7 [db3,ab3,db4] ~@4", // Ebm Db5
  Q: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 ~ [ab3,bb3]@2 ~@2 eb2@2 ~ [gb3,bb3,eb4] ~, ~@7 [db3,db4] ~@4", // Ebm Absus2 Ebm Db
  R: "[~@3 eb2 ~ [gb3,bb3] ~@4 bb2@4 db3@2 ~@3 e5 f5@2 [ab3,gb4] f5@2 ~@3 f5@3 ~ f5@2 ~ f5@3 ~ gb5@3 ~@2 eb5@3 [eb4,ab4] ~@6 db4@7 ~@2 [bb3,eb4,ab4]@2 c5@2 ~ db4@2 ~ eb5@3 ~ eb5@3 ~ eb5@2 ~ eb5@4 ~ f5@5 ~@2 [ab3,db4,gb4] ~@14 [b3,d4]@5 ~@6 f5@2 ~ d5@2 eb5@2 ~ f5@2 gb5@2 ~ [bb3,db4,f4] ~ f5 ~ gb5@2 ~ eb5@2 [db4,gb4] ~, ~@22 db4@2 ~@23 eb5@17 ~@3 eb5@4 ~@62 ab5@2 ~@7 f5@2, ~@53 [ab3,gb4]@7 ~@7 gb4@2 ~@23 bb4@20 ~@32, ~@68 ab3 ~@39 [g3,gb4]@6 ~ [gb3,bb3,db4,f4]@9 ~@20]/6", // Gb Ab7 Ab5 Ebsus4 Dbsus4 Bm Bbm Gb5 …
  S: "[db5 ~@2 eb5@2 c5@2 ~ db5@2 bb4@2 ab4 [bb3,eb4] ~ ab4@2 ~ bb4 ~ f4@7 eb4 ~ f4@3 ~@2 f4@3 e4 eb4 d4@2 ~ f4 d4@2 ~ eb4@2, ~@13 c5@2 ~@33]/2", // Eb5
  T: "[e4@2 ~ g4@2 b4@2 d5@2 ~ g5@2 b5 ~ d6@2 ~ db6@2 ~@2 [bb4,bb5]@6 [gb4,gb5]@2 ~@5 f5@2 ~ ab5@2 d5@2 ~ b4 ~ bb4@2 f4 ~, ~@12 [g3,b3,c4,e4]@7 ~@2 [gb3,bb3,b3,eb4]@11 eb5@2 ~@14, ~@11 [f3,b3,eb4]@3 ~@2]/2", // Bb Gb Cmaj7 Bmaj7 Fm7b5
  U: "[ab4@2 ~ [bb3,db4,f4,gb4]@2 f4@2 ~ gb4@2 g4@2 ~ bb4 ~ db5@2 ~ c5@2 ~ b4@2 ~@2 b4@2 db5@2 ~@2 db5@2 ~ [f3,b3,eb4,eb5]@2 ~ [f3,b3,eb4] eb5 f5@3 ~ bb5@2 ~@2 ab5@2 ~@7 [ab3,bb3,db4,f4] ~@6 e5@3 ~@2 eb5@4, ~@3 ab3 ~@9 [g3,db4]@6 ~ [gb3,bb3,b3,eb4]@10 ~@21 db5@8 ~@2 [g3,db4,gb4]@5 ~@6, ~@63 eb5 ~@8]/3", // Gbmaj7 Fm7b5 Bbm7 Gdim Bmaj7 Gb
  V: "~@3 [gb3,b3,eb4] ~@2 bb4@2 ab4 ~ b4 db5@2 ~ bb4@2 ~ [f3,b3,eb4] ~ f4@2 ~ eb4@2, ~@3 b4@3 ~@10 ab4@2 ~@6", // B Fm7b5
  W: "~ db4@5 ~@2 [ab3,bb3,db4,f4] ~@3 bb3 b3 eb4 ~ g4 b4@2 bb4 ~@2 bb4 ab4", // Bbm7
  X: "g4 ~@2 [gb3,bb3,b3,eb4] ~ db5@2 ~ bb4@2 ab4@2 b3 ~ db4@2 ~ d4@2 ~ e4@2 [gb3,b3,eb4] bb3, ~@3 ab4@2 ~@17 f4@2", // Bmaj7 B
  Y: "g4@2 ~ ab4 ~ bb4@2 ~ b4@2 db5 ~@2 d5@2 eb5 ~@2 e5 ~@2 f5@3, ~@3 bb1@8 ~@2 [ab3,d4,gb4]@6 ~@5", // Abm7b5
  Z: "f5@2 ~@8 [gb3,bb3,db4,f4]@2 ~ [gb3,bb3,db4,f4] ~@6 f5@2 ab5@2", // Gbmaj7
  AA: "~ f5@3 ~ db5@3 ~@2 db5@3 [bb3,db4,f4] ~@9 [ab3,db4,gb4], ~@13 eb5@2 ~@9", // Bbm Dbsus4
  AB: "~@5 [gb3,bb3,db4]@5 ~@2, ~@9 [bb5,eb6]@14 ~, ~@9 f4@10 ~@5, ~@9 a5@2 ~@13", // Gb Eb5
  AC: "~@5 [bb5,eb6]@4 ~@2 ab5 gb5 ~ [ab5,eb6]@3 gb5 ~@6, ~@5 a5 ~@3 eb6@3 ~@12, ~@5 a5 ~@6", // Eb5 Ab5
  AD: "~@3 [g3,db4,gb4] ~@8 eb5@2 ~ gb5 ~ ab5@2 ~ a5@2 bb5@2, ~ [gb3,bb3,db4,f4] ~", // Gb Gbmaj7
  AE: "~ a5@2 ab5@2 gb5@2 ~ eb5 ~ gb5@2 ~ ab5@2 ~@2 ab5@3 ~ gb5@2 ~",
  AF: "bb5@12 ~ [bb3,db4,f4] ~@5 ab5@2 ~ f5@2, ~@9 eb5 ~@2", // Bbm
  AG: "[~ db5@3 ~ f5@2 ~ db5@2 bb4@3 [gb3,bb3,db4,f4] eb5@3 c5@2 [eb1,bb1]@22 ~@2 [bb3,eb4,ab4,db5,f5]@26 ~@3, ~@19 ab4@24 ~@29, ~@19 eb2@19 ~@34]/3", // Gbmaj7 Eb5 Bbm7
  AH: "~@3 [bb3,eb4,ab4,db5,f5,ab5] ~@20", // Bbm7
  AI: "[~@13 [bb3,f4,gb4,db5,ab5] ~@5 [eb3,bb3,gb4]@17 ~@7 [db4,f4,ab4]@8 [gb4,bb4] ~@15 [bb3,db4,ab4]@3 bb4 gb4, ~@19 [db5,ab5]@15 ~@38]/3", // Bbm7 Ebm Db Gb Bbm7 Db5
  AJ: "[~@18 [gb3,b3,eb4,gb4,bb4]@12 ~@2 [f3,b3,eb4]@2 ~@13 [ab3,ab4]@2 ~@12 [g3,db4,e4,bb4,e5]@5 ~ [gb3,b3,eb4]@5, ~@17 db5@12 ~@3 [ab4,db5] ~@14 f4 ~@24]/3", // Bmaj7 Fm7b5 Ab Gdim B Db5
  AK: "~@3 [gb3,b3,eb4] ~@9 [f3,b3,eb4,ab5,eb6,ab6] ~@8 [gb3,b3,eb4,db5,gb5,bb5] ~", // B Fm7b5 Ebm7
  AL: "[~@12 db4 [g3,e4,db5,e5] ~@4 [gb3,b3,eb4]@8 ~ [gb3,b3,eb4,b4,eb5,gb5] ~@8 db5 d5@4 ~@2 [bb3,db4,bb4,db5]@7 ~ [bb3,db4,bb4,db5] ~@6 [gb4,db5,gb5]@4 [e4,f5]@3 ~ d4 ~@3 [gb3,b3,eb4,db5,gb5,bb5]@8 ~@2 [f3,b3,eb4]@10 ~@6, ~@17 [b4,eb5,gb5]@8 ~@11 [f3,b3,eb4,f5]@6 ~ f4 ~@14 [g3,db4,bb5]@12 ~@26, ~@65 e5@4 ~@27]/4", // Dbdim B Bbm Gb5 Fmaj7 Ebm7 Fm7b5 B …
  AM: "[eb4,f4,b4,g5]@3 eb5 ~@10 [ab3,d4,ab4,d5,gb5]@4 ~@6", // Ebaug Abm7b5
  AN: "~@5 [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  AO: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~, ~@14 bb3 ~@9", // Ebm Db5 Ebm
  AP: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  AQ: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  AR: "~@3 eb2@2 [gb3,bb3,eb4] ~@4 bb2@4 ~ bb3 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~, ~@7 [db3,ab3] ~@4", // Ebm Db5
  AS: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 [ab3,bb3]@2 ~@3 eb2 ~@2 [gb3,bb3,eb4] ~, ~@14 db3@5 ~@5", // Ebm Absus2 Ebm
  AT: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 db3 ~@4 eb2 ~@2 [gb3,bb3,eb4] ~", // Ebm
  AU: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 b2@4 [b1,a3,b3,d4]@5 e2@2 ~ [g3,b3,e4] ~", // Ebm Bm7 Em
  AV: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4]@2 ~@3 e2@2 ~ [g3,b3,e4] ~", // Em Bm7 Em
  AW: "~@3 e2@2 [g3,b3,e4] ~@4 b2@4 [d3,a3,d4]@2 ~@3 e2@2 ~ [g3,b3,e4] ~, ~@14 b3 ~@9", // Em D5 Em
  AX: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 ~ a3@2 ~@2 e2 ~@2 [g3,b3,e4] ~, ~@7 [d3,b3,d4] ~@4", // Em G
  AY: "~@3 e2@2 [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3,d4]@2 ~@3 e2@2 ~ [g3,b3,e4] ~", // Em Bm7 Em
  AZ: "~@3 e2@2 [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4]@2 ~@3 e2@2 ~ [g3,b3,e4] ~", // Em Bm7 Em
  BA: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [a3,b3] ~@4 a2 ~@2 [c4,e4,b4] ~, ~@14 d3@5 ~@5, ~@7 d4 ~@4", // Em Asus2 Cmaj7
  BB: "~@5 [c4,e4,b4]@2 ~@3 d2@4 [gb2,c4,e4,a4]@3 ~@2 g2 ~@2 [b3,gb4,a4] ~, ~ a2@2 ~@5", // Cmaj7 Gbm7b5 B7
  BC: "~@5 [b3,a4]@2 ~@3 e2@4 [d4,f4,ab4]@5 a2 ~@2 [c4,e4,b4] ~, ~@3 g2@6 ~@5 b2@3 ~@7, ~@5 gb4 ~@18", // B7 Ddim Cmaj7
  BD: "~@5 [c4,b4]@2 ~@3 d2@4 [gb2,c4,e4,a4]@3 ~@2 g2 ~@2 [b3,gb4,a4] ~, ~ a2@2 ~@5, ~@5 e4 ~@18", // Cmaj7 Gbm7b5 B7
  BE: "~@5 [b3,gb4,a4]@2 ~@3 [e2,d4,gb4,ab4]@4 [d4,f4,ab4]@5 a2 ~@2 [c4,e4,b4] ~, ~@3 g2@6 ~@5 ab2@3 ~@7", // B7 E7 Ddim Cmaj7
  BF: "~@5 [b3,gb4,a4]@2 ~@3 e2@4 ~ [d4,f4,ab4]@4 a2 ~@2 [c4,e4,b4] ~, ~@3 g2@6 ~@5 b2@3 ~@7", // B7 Ddim Cmaj7
  BG: "~@5 [c4,e4,b4]@2 ~@3 d2@4 [c3,c4,e4,a4]@3 ~@2 b2 ~@2 [a3,eb4,gb4]@2, ~ a2@2 ~@5", // Cmaj7 Am Ebdim
  BH: "~@5 [a3,eb4,gb4]@2 ~@3 gb2@4 b2@3 ~@2 e2 ~@2 [g3,b3,e4] ~, ~@3 b2@6 ~ [a3,eb4,g4]@7 ~@7", // Ebdim Em Am7b5
  BI: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4]@2 ~@3 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  BJ: "~@3 e2@2 [g3,b3,e4] ~@4 b2@4 ~ a3@2 ~@2 e2@2 ~ [g3,b3,e4] ~, ~@7 [d3,b3,d4] ~@4", // Em G
  BK: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 ~ a3@2 ~@2 e2@2 ~ [g3,b3,e4] ~, ~@7 [d3,b3,d4] ~@4", // Em G
  BL: "~@3 e2 ~ [g3,b3] ~@4 b2@4 d3@2 ~@3 e2 ~@2 [g3,b3,e4] ~", // G Em
  BM: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4] ~@4 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  BN: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3] ~@4 e2@2 ~ [g3,b3,e4] ~", // Em Bm7 Em
  BO: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3]@2 ~@3 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  BP: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3] ~@4 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  BQ: "~@3 e2 ~ [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3]@2 ~@3 e2 ~@2 [g3,b3,e4] ~", BR: "~@3 e2 ~ [g3,b3] ~@13 e2 ~@4",
})).s("gm_piano").gain(0.48)

// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note(`<
  ~@29 A ~@3 B ~@12 C ~@9 D@3 ~@2 E ~@3 F ~@2 G H@8 ~@2 I ~@27 J K J K L M N O N P Q R ~@2
>`.pickRestart({
  A: "~@23 bb3", B: "~@22 ab3 ~", C: "~@13 gb3 ~@10",
  D: "[~@19 f4@15 ~@11 [eb3,bb3]@7 ~@15 [eb3,gb3,f4]@4 ~, ~@22 gb3@3 ~@11]/3", E: "~@23 c4", F: "~@19 gb3@5",
  G: "[ab3,b3,g4] ~@7", H: "~@7 db4 ~@4", I: "~@14 [ab3,bb3,db4] ~@9", J: "~@14 d4 ~@9", K: "~@7 d4 ~@4",
  L: "~@5 e4 ~@4 b2@4 [d3,a3,b3,d4] ~@7 [g3,b3,e4] ~", // Bm7 Em
  M: "~@3 e2 ~ [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3,d4]@2 ~@3 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  N: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4] ~@4 e2@2 ~ [g3,b3,e4] ~", // Em Bm7 Em
  O: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,d4]@2 ~@3 e2 ~@2 [g3,b3,e4] ~, ~@14 b3 ~@9", // Em D5 Em
  P: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4]@2 ~@3 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  Q: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4] ~@4 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  R: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4]@2 ~@8", // Em Bm7
})).s("gm_piano").gain(0.16)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B@4 C D E F C G H I J K J L J M N O C D E P C G H Q C D C D C D C R S T U T V W X Y C D E P C G H Z C D@2 P C G H AA
  S T U T V W X AB C D E P C G H Z E AC E AD AE AF AG AH AE AI AJ AK AL AM AL AN AL AM AO AP AE AF@2 AQ AE AI AJ AR AS
  AT AS AT AS AU AS AU AS AT AS AT AS AV ~@2
>`.pickRestart({
  A: "~@19 eb2@4 ~", B: "eb2 ~@2 eb2@6 ~ bb1@3 ~ db2@3 ~@2 eb2@4 ~", C: "~@3 eb2@6 ~ bb2@3 ~ db2@3 ~@2 eb2@4 ~",
  D: "~@3 eb2@6 ~ bb1@3 ~ db2@4 ~ eb2@4 ~", E: "~@3 eb2@6 ~ bb1@3 ~ db2@3 ~@2 eb2@4 ~",
  F: "~@3 eb2@5 ~@2 bb2@3 ~ db2@3 ~@2 eb2@4 ~", G: "~@3 eb2@7 bb1@3 ~ db2@3 ~@2 eb2@4 ~",
  H: "~@3 eb2@7 bb1@3 ~ db2@4 ~ eb2@4 ~", I: "~@3 eb2@6 ~ bb2@4 db2@5 ab2@5",
  J: "~@3 ab2@4 ~ ab2 ~ db2@3 ~ f2@3 ~@2 gb2@5", K: "~@3 gb2@4 ~@3 eb2@3 ~ bb2@2 ~@3 ab2@5",
  L: "~@3 gb2@4 ~ gb2 ~ eb2@3 ~ g2@2 ~@3 ab2@5", M: "~@3 gb2@4 ~@3 a1@3 ~ a2@5 ab2@5",
  N: "~@3 ab2@4 ~ ab2 ~ db2@3 ~ b2@3 ~@2 bb1@5", O: "~@3 bb1@4 ~@3 f2@4 bb2@2 ~@8",
  P: "~@3 eb2@5 ~@2 bb2@3 ~ db2@4 ~ eb2@4 ~", Q: "~@3 eb2@6 ~ bb2@4 db2@4 ~ eb2@4 ~",
  R: "~@3 eb2@6 ~ bb1@3 ~ a1@4 ~ ab2@5", S: "ab1@5 b1@5 db2@4 ab2@5 gb2@5", T: "f2@5 e2@5 eb2@4 g2@5 ab2@5",
  U: "bb2@5 b2@5 ~ ab2@2 ~ db2@5 gb2@5, ~@10 db3@2 ~ f2@2 ~@9", V: "gb2@5 eb2@5 db2@4 f2@5 gb2@5",
  W: "f2@5 e2@5 eb2@4 bb1@5 ab1@5", X: "bb1@5 b1@5 db2@4 f2@5 f2@5", Y: "f1@5 bb1@5 bb2@4 bb1@5 eb2@4 ~",
  Z: "~@3 eb2@6 ~ bb2@4 db2@5 eb2@4 ~", AA: "~@3 eb2@6 ~ bb2 a2 ~ ab2 gb2 ~ eb2 ~ ab1@6",
  AB: "f1@5 b1@5 bb1@4 bb2@5 eb2@4 ~", AC: "~@3 eb2@7 bb2@3 ~ db2@3 ~@2 eb2@4 ~",
  AD: "~@3 eb2@7 b1@3 ~ b1@3 ~@2 e2@4 ~", AE: "~@3 e2@6 ~ b2@3 ~ d2@3 ~@2 e2@4 ~",
  AF: "~@3 e2@6 ~ b1@3 ~ d2@4 ~ e2@4 ~", AG: "~@3 e2@6 b1@3 ~@2 d2@3 ~@2 e2@4 ~",
  AH: "~@3 e2@5 ~ b2@3 ~@2 d2@3 ~@2 e2@4 ~", AI: "~@3 e2@7 b1@3 ~ d2@3 ~@2 e2@4 ~", AJ: "~@3 e2@7 b1@3 ~ d2@4 ~ e2@4 ~",
  AK: "~@3 e2@6 ~ b2@4 d2@5 a2@5", AL: "~@3 a2@4 ~ a2 ~ d2@3 ~ gb2@3 ~@2 g2@5", AM: "~@3 g2@4 ~@3 e2@3 ~ b2@2 ~@3 a2@5",
  AN: "~@3 g2@4 ~ g2 ~ e2@3 ~ ab2@2 ~@3 a2@5", AO: "~@3 a2@4 ~ a2 ~ d2@3 ~ c3@3 ~@2 b1@5",
  AP: "~@3 b1@4 ~@3 gb2@4 b2@2 ~@3 e2@4 ~", AQ: "~@3 e2@5 ~@2 b2@3 ~ d2@4 ~ e2@4 ~",
  AR: "~@3 e2@6 ~ b2@4 d2@4 ~ e2@4 ~", AS: "~@3 e2@6 ~ b1@3 ~ d2@3 ~@2 e2@4 ~", AT: "~@3 e2@7 b2@3 ~ d2@3 ~@2 e2@4 ~",
  AU: "~@3 e2@6 b2@3 ~@2 d2@3 ~@2 e2@4 ~", AV: "~@3 e2@7 b2@3 ~ d2@3 ~@7",
})).s("gm_acoustic_bass").gain(0.54)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B@3 C B@7 D@4 E@5 B@7 F@2 ~@2 G@3 H@4 I@7 J ~ K L M@2 N O P Q R@2 S T U V@2 W X Y@2 Z AA@2 AB AC@3 AD AE AF@2 ~ AG
  AH AI@7 AJ@4 AK@5 AI@12 AL AM ~@10
>`.pickRestart({
  A: "~@22 [eb4,gb4,bb4] ~", B: "~@5 [eb4,gb4,bb4]@2 ~@15 [eb4,gb4,bb4] ~", C: "~@5 [eb4,gb4,bb4] ~@16 [eb4,gb4,bb4] ~",
  D: "[~@5 [eb4,gb4,bb4]@2 ~@3 bb4@3 a4@2 bb4@2 b4 ~ b4@3 ~ eb5@2 ~@2 b4@2 ab4@3 ~@2 f4@3 gb4@2 ab4@2 a4 ~ bb4@3 ~ db5@2 ~@2 bb4 ~ gb4@3 ~@2 eb4@3 ~ gb4@3 g4@2 ab4@3 ~ b4@2 ~@2 ab4@2 f4@2 ~@3 db4@3 ~ f4@3 f4@2 gb4@3 f4@2, ~@61 f4@2 ~@22 eb4@2 ~@9]/4", // Ebm
  E: "[gb4@2 ~ ab4@2 bb4@3 ~@2 bb4@3 a4@2 bb4@3 ~ b4@3 ~ eb5@2 ~@2 b4@2 ab4@3 ~@2 f4@3 gb4 ~ ab4@2 a4@2 bb4@3 ~ db5@2 ~@2 bb4@2 gb4@3 ~@2 eb4@3 ~ gb4@3 g4 ~ ab4@3 ~ b4@2 ~@2 ab4@2 f4@3 ~@2 db4@3 f4@2 b4@2 ab4@2 f4@12 ~@3 bb4@9 ~@3 [eb4,gb4,bb4] ~, ~@18 bb4@2 ~@41 f4@2 ~@41 d4@11 ~@5, ~@21 gb4@2 ~]/5", // Ebm
  F: "[~@5 [eb4,gb4,bb4]@2 ~@15 ab4@6 ~@4 gb4@6 gb4@4 ab4@2 ~@2 ab4 ~]/2", G: "[~@19 [f4,ab4]@33 ~@15 [eb4,gb4]@5]/3",
  H: "[~@3 [f4,ab4]@27 ~@13 gb4@14 f4@23 ~@2 e4@9 gb4@5]/4", // Fm
  I: "[~@10 f4@23 ~ e4@9 gb4@14 ~ f4@10 f4@13 e4@10 gb4@14 f4@9 ~ g4@14 gb4@10 f4@17 ~@2 [f4,ab4]@3 ~@2 [gb4,bb4]@4 ~]/7", // Fm Gb
  J: "[f4,ab4]@5 ~@3", K: "~@22 [bb3,db4,f4] ~",
  L: "~@4 db4 [bb3,db4,f4]@3 [bb3,db4,f4] ~ db4@2 ~@3 db4@3 eb4 ~@3 [bb3,db4,f4] ~", // Bbm
  M: "~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,db4,f4] ~@5 db4@3 ~@2 db4@2 ~ [bb3,db4,eb4,f4] ~", // Bbm
  N: "~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,db4,f4] db4@3 ~@3 db4@2 eb4 ~@6", O: "~@19 f4@2 ~@2 ab4",
  P: "~@3 gb4 ~@4 d4 ~ f4@3 d4 eb4@4 ~@6", Q: "~@10 eb4@2 ~@2 a4 bb4@3 ~ [bb4,eb5]@4 ~, ~@13 ab4@2 ~@4 a4@2 ~@3",
  R: "[[bb4,eb5]@5 ~@14 eb5@2 ~ a4 ab4@4 ~@2 gb4@3 ~@2 eb4@3 gb4@6 ~@5, a4 ~@21 eb5@3 ~@23]/2", // Eb5
  S: "~@10 eb4@2 ~ gb4 ~ ab4@3 ~ ab4 [ab4,a4] ~ gb4 ~", // Amaj7
  T: "ab4@3 ~@2 gb4@2 ~ eb4@3 ~@2 ab3@3 ~@3 gb3@3 eb3@2, ~@13 a3 ~@10", U: "~@3 eb3 ~@18 eb3 ~",
  V: "[ab3@2 ~ bb3 ~ b3@2 ~ eb4 ~ gb4@2 ab4 ~@2 bb4@2 b4@2 ~ c5@2 ~ db5@2 ~@2 bb4@2 ab4@2 ~ gb4@2 g4@2 bb4@2 e4@3 d4 ~ d4 eb4@2 b3@2]/2",
  W: "bb3@2 ~ ab3@2 g3@3 ~@2 gb3@2 ~@3 f3@2 ab3@2 ~ b3@2 eb4@2", X: "db4@2 ~ b3@2 bb3@3 ~@6 db4 ~ e4 ~ g4!2 ab4@4",
  Y: "[~@3 eb4@2 ~@3 b3@2 bb3@3 ab3@2 ~@4 bb4@3 ~ [eb4,f4]@2 ~ eb4 ~@2 db4 c4@2 ~ b3@9 ~@4 bb3@2]/2", // Ebsus2
  Z: "~ bb3 ~ g3@2 ab3@2 bb3 ~@2 b3@2 db4@2 eb4@2 ~ f4@2 ~ g4@2 ab4 ~, b3 ~@11",
  AA: "[a4 ~@2 bb4 ~ b4@2 ~ c5 ~ db5@2 b4 ~@2 db5@2 b4 ~ bb4@2 ~@2 [e4,e5]@2 [f4,f5]@2 f5 f4 f5 ~ f4 f5 f4 f5 f4 f5 ~ f4 f5 f4 f5 ~ f4 f5 ~ f4 f5]/2", // E F
  AB: "f4 ~ f5 f4 f5 ~ f4 f5 ~ f4 ~@12 [g4,g5] [ab4,ab5]", // G Ab
  AC: "[~ [f4,f5]@2 [db4,db5] ~@2 [bb3,bb4]@2 ~ [gb3,gb4]@2 ~ [f3,f4] ~@2 [eb3,eb4]@3 [f3,f4]@14 ~@6 f3 ~ bb3 eb4 f4 ~@3 g4 ab4@4 ~@2 [gb4,bb4]@8 ~@2 db4@3 ~ db4@3 eb4 ~, ~@15 [d3,d4] ~@30 c5@5 ~@21]/3", // F Db Bb Gb F Eb F Gb …
  AD: "~@3 [ab4,c5]@5 ~@2 gb4@8 ~ d4 eb4 db4 bb3 ~, ~@3 g4 ~@5 bb4@8 ~@7", // Ab
  AE: "a3 ~ ab3 gb3 ~@4 [ab4,c5]@5 ~@2 [gb4,bb4]@9, ~@8 g4 ~@15", // Ab Gb
  AF: "[~@3 a4@2 ab4 ~ gb4 eb4 ~ db4@2 ~@3 bb3 ab3 ~ gb3 eb3@19 ~@10]/2", AG: "~@22 [gb4,bb4] ~",
  AH: "~@5 [eb4,gb4,bb4]@2 ~@4 g4@8 ~@3 [e4,g4,b4] ~, ~@9 a3@10 ~@5, ~@10 eb4@9 ~@5", // Ebm Em
  AI: "~@5 [e4,g4,b4]@2 ~@15 [e4,g4,b4] ~", // Em
  AJ: "[~@5 [e4,g4,b4]@2 ~@3 b4@3 bb4@2 b4@2 c5 ~ c5@3 ~ e5@2 ~@2 c5@2 a4@3 ~@2 gb4@3 g4@2 a4@2 bb4 ~ b4@3 ~ d5@2 ~@2 b4 ~ g4@3 ~@2 e4@2 gb4@2 g4@3 ab4@2 a4@3 ~ c5@2 ~@2 a4@2 gb4@2 ~@3 d4@2 e4@2 gb4@3 gb4@2 g4@3 gb4@2]/4", // Em
  AK: "[g4@2 ~ a4@2 b4@3 ~@2 b4@3 bb4@2 b4@3 ~ c5@3 ~ e5@2 ~@2 c5@2 a4@3 ~@2 gb4@3 g4 ~ a4@2 bb4@2 b4@3 ~ d5@2 ~@2 b4@2 g4@3 ~@2 e4@2 gb4@2 g4@3 ab4 ~ a4@3 ~ c5@2 ~@2 a4@2 gb4@3 ~@2 d4@2 gb4@2 c5@3 a4@2 gb4@12 ~@3 b4@9 ~@3 [e4,g4,b4] ~, ~@9 b4 ~@50]/5", // Em
  AL: "~@5 [e4,g4,b4]@2 ~@15 [g4,b4] ~", AM: "~@5 [g4,b4]@2 ~@17",
})).s("gm_electric_guitar_jazz").gain(0.44).pan(0.6)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note("<~@28 A B C D E ~@63 F ~@12 G H I@7 J ~@2>".pickRestart({
  A: "~@7 f4, ~@19 gb4@5",
  B: "f4@2 ~ f4@2 ~ f4@3 ~@4 f4@3 f4@3 gb4 ~ f4 ~@2, ~@2 gb4@6 ~@2 f4@3 ~@11, ~@5 ab4@6 ab4@6 ~@7",
  C: "f4 ~ gb4 f4 ~ ab4 f4 ~ gb4 ~ f4 ab4 ~ f4 gb4 ~ f4 ~ ab4 gb4 ~ f4 ab4 ~",
  D: "f4 ~ gb4 f4 ~ ab4 f4 ~ gb4 ~ f4 ab4 ~ f4 gb4 ~ f4 ~ ab4 f4 ~ ab4 f4 ~", E: "gb4 ~ f4 ~@11 [eb4,gb4]@4 ~@6",
  F: "~@9 g4@10 ~@5, ~@8 eb4@11 ~@5", G: "~@22 e4 ~", H: "~@5 e4@2 ~@15 [e4,g4,b4] ~",
  I: "~@5 [e4,g4,b4]@2 ~@15 [e4,g4,b4] ~", J: "~@5 [e4,g4,b4]@2 ~@17",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  A B@9 C B D B@3 D B@2 E F B@7 D B@5 C B G B@3 H I B E J B@2 K L B C B D B@5 C B M B@4 N B E O B@5 C P Q B@9 C B D B@3
  D B@2 E F B@7 D B@4 ~@3 A ~@8
>`.pickRestart({
  A: "~@19 x ~@4", B: "~@13 x ~@5 x ~@4", C: "~@14 x ~@4 x ~@4", D: "~@13 x ~@4 x!2 ~@4", E: "~@13 x ~@5 x ~@2 x ~",
  F: "~@8 x ~@9 x!2 ~@4", G: "~@13 x ~@4 x ~@5", H: "~@13 x ~@4 x!2 ~@2 x ~", I: "~@8 x ~@4 x ~@5 x ~@4",
  J: "~@3 x ~@4 x ~@10 x ~@4", K: "~@13 x ~@10", L: "~@3 x ~@9 x ~@5 x ~@4", M: "~@3 x", N: "~@12 x ~@6 x ~@4",
  O: "~@8 x ~@10 x ~@4", P: "~@13 x ~@3 x ~ x ~@4", Q: "~@5 x ~@4 x ~@2 x ~@4 x!2 ~@4",
})).gain(0.24)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@109 [~@13 x ~@5 x ~@4]!3 [~@13 x ~@10] [~@13 x ~@5 x ~@4]!5 ~@3>").gain(0.08)

// drums · snare
const snare = s("sd").struct(`<
  A B C D E F G H I J B F K J F L M B N H O J B J D P Q R S F G H I J B F T J F D M B N H U F G V W J B F X F G H I J B
  F Y J F Z AA AB N H AC F G H I J C J AD B C B AE F G AF I J B F K J AG L M B N H AH J B J D P Q R AI B AJ AK AL AK AM
  AN ~@9
>`.pickRestart({
  A: "~@18 x!2 ~@4", B: "~@3 x ~@9 x ~@2 x!2 ~@6", C: "~@3 x ~@6 x ~@2 x ~@2 x!2 ~@6", D: "~@3 x ~@6 x ~@3 x ~ x!2 ~@6",
// … 144 more lines

More by Paul Desmond