Strudelify
Take Five cover art

Buried Treasures (feat. Paul Desmond)

Take Five

Dave Brubeck

KeyE♭ minorTempo180 bpm
0:00/0:00
// Take Five — Dave Brubeck
// 180 bpm, 5/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 1) are rendered on a constant 5/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 119 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/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
const piano = note(`<
  ~ A B C D B E F@2 B F E G H I J K L M N O P E F@2 B F E Q R S T U V W@3 X Y@2 Z AA AB AC AD AE AF AG@2 AH AI AJ@2 AK
  AL@2 AM AN AO AP AQ@2 AR AS AT@2 AU@2 AV AW AX AY AZ BA AZ AX BB A B BC BD BE BF BG@2 BE BG BF BH BI BJ BK BL BK BJ BM
  BN BO BF BG@2 BE BG BF BP BQ BE BR BS BR BS BT BU ~@6
>`.pickRestart({
  A: "eb2 ~@2 [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3,bb3,db4] ~@4", // Ebm Bbm7
  B: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3,bb3,db4]@2 ~@3", // Ebm Bbm7
  C: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2@2 [gb3,bb3,eb4] ~@3 bb2@4 ~ [ab3,bb3,db4] ~@4, ~@19 db3@2 ~@3", // Ebm Bbm7
  D: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2@2 [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3]@2 ~@3, ~@19 [bb3,db4] ~@4", // Ebm Db5 Bbm
  E: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2@2 [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3,db4]@2 ~@3, ~@19 bb3 ~@4", // Ebm Db5
  F: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2@2 [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3,bb3,db4]@2 ~@3", // Ebm Bbm7
  G: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3,eb4] ~@3 bb2@4 ~ [ab3,bb3,db4]@2 ~@3, ~@19 db3@5", // Ebm Bbm7
  H: "gb3@12 ~@2 f3@9 ~, [b3,eb4]@23 ~", I: "[bb3,db4,f4]@4 ~ bb3@3, ~@7 gb4@4 ~, ~@15 g3@7 ~@2",
  J: "[gb3,b3,eb4]@13 ~@5 [f3,b3,eb4]@6", // B Fm7b5
  K: "[bb3,db4,f4]@6 ~@2 [bb3,db4] ~@7 g3@3 [g3,db4,e4]@4 ~, ~@8 f4@2 ~@5 [db4,gb4]@4 ~@5", // Bbm Dbdim Gb5
  L: "[gb3,b3]@12 ~@2 [f3,b3,eb4]@9 ~", M: "[bb3,db4,f4]@13 ~@5 [g3,db4,ab4,db5]@6",
  N: "[gb3,b3]@6 ~@2 [gb3,b3] ~@9 [f3,b3,ab4]@2 ~@4", // B5 Fdim
  O: "~@3 [ab3,b3,g4] ~@6 [ab3,b3,eb4,g4]@3 ~ [ab3,d4,gb4]@3 ~@2 [ab3,d4,gb4]@5, ~@3 eb4@2 ~@19", // Abm Abm7b5
  P: "~@3 [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3,bb3,db4]@2 ~@3", // Ebm Bbm7
  Q: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3] ~@3 bb2@4 ~ db3@2 ~@3", // Ebm Gb
  R: "f5@3 [ab3,gb4] f5@2 ~@2 f5@3 ~@2 f5@2 ~ f5@3 ~ gb5@3 ~, e5 ~@2 db4@2 ~@19", // Ab7
  S: "eb5@3 [eb4,ab4] ~@7 db4@7 ~@2 [bb3,eb4]@2 c5@2, ~@4 eb5@17 ~@3, ~@10 [ab3,gb4]@7 ~@2 ab4@3 ~@2", // Ab5 Eb5 Ab7
  T: "[db4,gb4]@2 ~@2 eb5@3 ~ eb5@3 ~ eb5@2 ~ eb5@4 f5@5, eb5 ~@5, ab3 ~@23", // Gb5
  U: "~@3 [ab3,db4,gb4] ~@13 [g3,b3,d4,gb4]@6 ~, ~ bb4@20 ~@3", // Dbsus4 Gmaj7
  V: "~@5 f5@2 ~ d5@2 eb5@2 ~ f5@2 gb5@2 [bb3,db4,f4] ab5@2 f5 ~ gb5@2, [gb3,bb3,db4,f4]@3 ~@5", // Bbm Gbmaj7
  W: "[~ eb5@2 [db4,gb4] ~ db5 ~@2 eb5@2 c5@2 ~ db5@2 bb4@2 [bb3,eb4,ab4] c5@2 ab4@2 ~ bb4@2 f4@7 eb4 ~ f4@3 ~@2 f4@3 e4 eb4 d4@2 ~@2 d4@2 ~ eb4@2 e4@2 ~ g4@2 b4@2 d5@2 ~ g5@2 b5 ~ d6@2 ~ db6@2, ~@3 f5@2 ~@42 f4@2 ~@16 [g3,b3,c4,e4]@7]/3", // Gb5 Ebsus4 Cmaj7
  X: "~ [bb4,bb5]@6 ~ [gb4,gb5]@2 ~@5 f5@2 ab5@2 ~ d5@2 b4@2, ~ [gb3,bb3,b3,eb4]@12 eb5@2 ~@9, ~@14 [f3,b3,eb4]@9 ~", // Bb Gb Bmaj7 Fm7b5
  Y: "[bb4@2 ~ f4 ~ ab4@2 ~ [bb3,db4,f4,gb4]@2 f4@2 ~ gb4@2 g4@2 ~ bb4 ~ db5@2 ~@4 b4@2 ~ b4@2 ~ db5@2 ~@2 db5@2 ~ eb5@2 [f3,b3] eb4 eb5 f5@3 ~, ~@8 ab3 ~@9 [g3,db4]@5 c5@2 [gb3,bb3]@10 ~@3 [f3,b3,eb4]@2 ~@8, ~@12 [b3,eb4]@5 ~@7]/2", // Gbmaj7 Fdim Gdim Gb Fm7b5 B
  Z: "bb5@2 ~ ab5@2 ~@8 [ab3,bb3,db4,f4] ~@6 e5@3 ~, ~@8 db5@8 ~@2 [g3,db4,gb4]@5 ~, ~@20 eb5 ~@3", // Bbm7 Gb
  AA: "~ eb5@5 ~@2 [gb3,b3,eb4] ~ bb4@2 ~ ab4 ~ b4 db5@2 bb4@2 ~@2 [f3,b3,eb4] ~, ~@8 b4@2 ~@11 ab4@2 ~", // B Fm7b5
  AB: "f4@2 eb4@2 ~@2 db4@5 ~@2 [ab3,bb3,db4,f4] ~@2 bb3 ~ b3 ~ g4 ~ b4@2, ~@19 eb4@2 ~@3", // Bbm7
  AC: "bb4 ~@2 bb4 ab4 g4 ~@2 [gb3,bb3,b3,eb4] ~ db5@2 ~ bb4@2 ab4@2 b3 ~ db4@2 ~ d4@2, ~@7 ab4@2 ~@15", // Bmaj7
  AD: "~ e4@2 [gb3,bb3,b3,eb4] ~ g4@2 ~ ab4@2 bb4@2 b4@3 db5 ~@2 d5@2 eb5 ~@2 e5, ~@3 f4@2 ~@3 bb1@8 ~@2 [ab3,d4,gb4]@6", // Bmaj7 Abm7b5
  AE: "~ f5@3 ~ f5@2 ~@7 [gb3,bb3,db4,f4]@3 ~ [gb3,bb3,db4,f4] ~@5", // Gbmaj7
  AF: "~ f5@2 ab5@2 f5@3 ~@2 db5@3 ~@2 db5@2 f4 [bb3,db4] ~@5, ~@17 eb5@2 ~@5", // Bbm
  AG: "[~@3 [ab3,db4,gb4] ~@10 [gb3,bb3,db4,f4]@10 ~@9 [bb5,eb6]@4 ~@4 gb5 ~ [ab5,eb6]@3 gb5 ~, ~@7 [bb5,eb6]@7 ~@5 eb6 ab5 ~@3, ~@14 a5@2 ~@17 a5 ~@5 a5@2 ~@7]/2", // Dbsus4 Gbmaj7 Eb5 Ab5 Eb5
  AH: "~@8 [g3,db4,gb4] ~@8 eb5@2 ~ gb5@2 ab5@2, ~@13 [gb3,bb3,db4,f4]@8 ~@3", // Gb Gbmaj7
  AI: "~ a5@2 bb5@2 ~ a5@2 ab5@2 gb5@2 ~ eb5 ~ gb5@2 ~ ab5@2 ~@2 ab5@2",
  AJ: "[~@2 gb5@2 ~ bb5@12 ~ [bb3,db4,f4] ~@5 ab5@2 ~ f5@2 db5@3 ~@2 f5@2 ~ db5@2 bb4@3 [gb3,bb3,db4,f4] eb5@3 c5@2, ~@23 eb5@2 ~@23]/2", // Bbm Gbmaj7
  AK: "[eb1,bb1]@11 ~, ab4, eb2@19 ~@5", AL: "[[bb3,eb4,ab4,db5,f5]@26 ~@6 [bb3,eb4,ab4,db5,f5,ab5] ~@15]/2",
  AM: "~@17 [f4,gb4] [bb3,db5,ab5] ~@5", AN: "[eb3,bb3,gb4,db5,ab5]@2 ~", AO: "[db4,f4,ab4]@8 [gb4,bb4] ~@15",
  AP: "[bb3,db4,ab4]@3 [gb4,bb4] ~@20", // Bbm7 Gb
  AQ: "[~@22 [gb3,b3,eb4,gb4,bb4,db5]@12 ~@3 [f3,b3,eb4,ab4]@2 ~@9, ~@37 db5 ~@10]/2", // Ebm7 Fm7b5
  AR: "~@3 [ab3,ab4]@2 ~@13 [g3,db4,e4,bb4,e5]@5 ~, ~@3 f4 ~@20", // Ab Gdim
  AS: "[gb3,b3,eb4]@6 ~@2 [gb3,eb4] ~@8 ab6 [f3,b3,eb4,ab5,eb6] ~@5, ~@4 b3 ~@7", // B Ebm Fm7b5
  AT: "[~@3 [gb3,b3,eb4,db5,gb5,bb5] ~@13 [g3,db4,e4,db5,e5] ~@4 [gb3,b3,eb4,b4,eb5,gb5]@8 ~@2 [gb3,b3,eb4,b4,eb5,gb5] ~@8 db5 d5@4 ~@2, ~@41 [f3,b3,eb4,f5]@6 ~]/2", // Ebm7 Dbdim B Fm7b5
  AU: "[[bb3,db4,bb4,db5]@7 ~ [bb3,db4,bb4,db5] ~@6 [gb4,db5]@4 [e4,f5]@3 e5@4 ~ [gb3,b3,eb4,db5,gb5,bb5]@8 ~@2 [f3,b3,eb4]@10 ~, f4 ~@13 bb5@12 ~@22, ~@14 gb5@4 ~@4 d4 ~@25, ~@5 [g3,db4]@4 ~@7]/2", // Bbm Gb5 Fmaj7 Ebm7 Fm7b5 Gdim
  AV: "~@5 [eb4,f4,b4,g5]@3 eb5 ~@10 [ab3,d4,ab4,d5,gb5]@4 ~", AW: "~@10 [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3,bb3]@2 ~@3",
  AX: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2@2 [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3]@2 ~@3, ~@19 bb3 ~@4", // Ebm Db5
  AY: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2@2 [gb3,bb3] ~@3 bb2@4 ~ [db3,ab3,bb3]@2 ~@3, ~@5 eb4 ~@6", // Ebm Gb Bbm7
  AZ: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2@2 [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3,bb3]@2 ~@3", // Ebm Bbm7
  BA: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3,eb4] ~@3 bb2@4 ~ [db3,ab3,bb3]@2 ~@3", // Ebm Bbm7
  BB: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3,eb4] ~@3 bb2@4 ~ [ab3,bb3]@2 ~@3, ~@19 db3@5", // Ebm Absus2
  BC: "eb2 ~@2 [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3,eb4] ~@3 bb2@4 ~ db3 ~@4", // Ebm
  BD: "eb2@2 ~ [gb3,bb3,eb4] ~@4 eb2 ~ [gb3,bb3,eb4] ~@3 b2@4 ~ [b1,a3,b3,d4]@5", // Ebm Bm7
  BE: "e2@2 ~ [g3,b3,e4] ~@4 e2 ~ [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3,d4]@2 ~@3", // Em Bm7
  BF: "e2@2 ~ [g3,b3,e4] ~@4 e2@2 [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,d4]@2 ~@3, ~@19 b3 ~@4", // Em D5
  BG: "e2@2 ~ [g3,b3,e4] ~@4 e2@2 [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3,d4]@2 ~@3", // Em Bm7
  BH: "e2@2 ~ [g3,b3,e4] ~@4 e2 ~ [g3,b3,e4] ~@3 b2@4 ~ [a3,b3,d4]@2 ~@3, ~@19 d3@5", // Em Bm7
  BI: "a2 ~@2 [c4,e4,b4] ~@6 [c4,e4,b4]@2 ~@2 d2@5 [gb2,c4,e4,a4]@3 ~@2, ~@4 a2@3 ~@5", // Cmaj7 Gbm7b5
  BJ: "g2 ~@2 [b3,gb4,a4] ~@6 [b3,gb4,a4]@2 ~@2 e2@4 ~ [d4,f4,ab4]@5, ~@8 g2@6 ~@5 b2@3 ~@2", // B7 Ddim
  BK: "a2 ~@2 [c4,e4,b4] ~@6 [c4,e4,b4]@2 ~@2 d2@4 ~ [gb2,c4,e4,a4]@3 ~@2, ~@4 a2@3 ~@5", // Cmaj7 Gbm7b5
  BL: "g2 ~@2 [b3,gb4,a4] ~@6 [b3,gb4,a4]@2 ~@3 ab4@4 [d4,f4,ab4]@5, ~@8 g2@6 [e2,d4,gb4]@5 ab2@3 ~@2", // B7 Ddim D
  BM: "a2 ~@2 [c4,e4,b4] ~@6 [c4,e4,b4]@2 ~@2 d2@4 ~ [c3,c4,e4,a4]@3 ~@2, ~@4 a2@3 ~@5", // Cmaj7 Am
  BN: "b2 ~@2 [a3,eb4,gb4]@2 ~@5 [a3,eb4,gb4]@2 ~@7 b2@3 ~@2, ~@8 b2@6 a3@7 ~@3, ~@7 gb2@2 ~@3, ~@15 [eb4,g4]@7 ~@2", // Ebdim Eb
  BO: "e2 ~@2 [g3,b3,e4] ~@4 e2 ~ [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3,d4]@2 ~@3", // Em Bm7
  BP: "e2@2 ~ [g3,b3,e4] ~@4 e2 ~ [g3,b3] ~@3 b2@4 ~ d3@2 ~@3", // Em G
  BQ: "e2 ~@2 [g3,b3,e4] ~@4 e2 ~ [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3,d4] ~@4", // Em Bm7
  BR: "e2 ~@2 [g3,b3,e4] ~@4 e2 ~ [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3] ~@4", // Em Bm7
  BS: "e2@2 ~ [g3,b3,e4] ~@4 e2 ~ [g3,b3,e4] ~@3 b2@4 ~ [d3,a3,b3]@2 ~@3", // Em Bm7
  BT: "e2 ~@2 [g3,b3,e4] ~@4 e2 ~ [g3,b3] ~@13", BU: "e2 ~@11",
})).s("gm_piano").gain(0.3)

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

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

// bass · acoustic bass · soft notes
const bass_soft = note("<~@111 A B C D C D C D>".pickRestart({
  A: "~@8 e2@6 b1@3 ~@7", B: "~@8 e2@6 b2@3 ~@7", C: "e2@4 ~@4 e2@6 b1@3 ~@2 d2@3 ~@2",
  D: "e2@4 ~@4 e2@6 b2@3 ~@2 d2@3 ~@2",
})).s("gm_acoustic_bass").gain(0.06)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~ A@3 B A@7 C D E F G H I J K A@8 ~@4 L@2 M@2 N@2 O@2 P Q R S T U ~@2 V W X Y ~ Z AA AB AC AD AE AF AG AH AI AJ AK AL
  AM AN AO AP AQ@2 AR AS AT@3 ~@2 AU AV@7 AW AX AY AZ BA BB BC BD BE AV@11 BF BG ~@9
>`.pickRestart({
  A: "~@3 [eb4,gb4,bb4] ~@6 [eb4,gb4,bb4]@2 ~@12", B: "~@3 [eb4,gb4,bb4] ~@6 [eb4,gb4,bb4] ~@13",
  C: "~@3 [eb4,gb4,bb4] ~@6 [eb4,gb4,bb4]@2 ~@3 bb4@3 a4@2 bb4@2 b4 ~", // Ebm
  D: "b4@3 ~ eb5@2 ~@2 b4@2 ab4@3 ~@2 f4@3 gb4@2 ab4@2 a4 ~",
  E: "bb4@3 ~ db5@2 ~@2 bb4 ~ gb4@3 ~ eb4@3 f4@2 gb4@3 g4@2", F: "ab4@3 b4@2 ~@2 ab4@2 f4@2 ~@4 db4@2 eb4@2 f4@3 f4@2",
  G: "gb4@3 f4@2 gb4@2 ~ ab4@2 bb4@3 ~@2 bb4@3 a4@2 bb4@2 bb4@2",
  H: "b4@3 eb5@2 ~@3 b4@2 ab4@3 ~@2 f4@3 gb4 ~ ab4@2 a4@2", I: "bb4@3 ~ db5@2 ~@2 bb4@2 gb4@3 ~ eb4@3 f4@2 gb4@3 g4 ~",
  J: "ab4@3 b4@2 ~@2 ab4@2 f4@3 ~@3 db4@2 f4@2 b4@3 ab4@2", K: "f4@4 ~ bb4@3, ~@13 d4@11, ~@7 gb4@5",
  L: "[[f4,ab4]@11 ~@5]/2", M: "[[eb4,gb4]@7 ~ [f4,ab4]@27 ~@13]/2", N: "[gb4@14 f4@23 ~ e4@9 ~]/2",
  O: "[gb4@13 ~ f4@23 ~ e4@9 ~]/2", P: "gb4@7 f4@5", Q: "~ f4@13 e4@10", R: "gb4@14 f4@9 ~", S: "g4@7 gb4@5",
  T: "f4@17 ~@2 [f4,ab4]@3 ~@2", U: "[gb4,bb4]@4 ~ [f4,ab4]@15 ~@4",
  V: "~@3 [bb3,db4,f4] ~@4 db4 ~ [bb3,db4,f4]@3 [bb3,db4,f4] ~ db4@2 ~@2 db4@3 eb4 ~", // Bbm
  W: "~@3 [bb3,db4,f4] ~@4 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,db4,f4] ~@5 db4@3 ~@2", // Bbm
  X: "db4@2 ~ [bb3,db4,eb4,f4] ~@4 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,db4,f4] ~@5 db4@3 ~@2", // Bbm
  Y: "db4@2 ~ [bb3,db4,eb4,f4] ~@4 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,db4,f4] db4@3 ~@2 db4@2 ~ eb4 ~", // Bbm
  Z: "f4@2 ~ ab4@2 ~@3 gb4 ~@4 d4 ~ f4@3 d4 eb4@4 ~", AA: "~@15 eb4@2 ~@2 bb4@3 ~@2, ~@9 ab4 ~@2, ~@19 a4 ~@4",
  AB: "[bb4,eb5]@4 ~ [bb4,eb5]@5 ~@14, a4@2 ~@3 a4 ~@18", AC: "eb5@2 ~ a4 ab4@4 ~@2 gb4@3 ~@2 eb4@3 gb4@6, ~ eb5 ~@6",
  AD: "~@15 eb4@2 ~ gb4 ab4@3 ~@2", AE: "ab4 [ab4,a4] ~ gb4 ~ ab4@3 ~@2 gb4@2 ~ eb4@3 ~@2 ab3@3 ~@3, ~@18 a3 ~@5",
  AF: "gb3@3 eb3@3 ~@2 eb3 ~@15", AG: "~@3 eb3@2 ab3@2 ~ bb3 ~ b3@2 eb4 ~ gb4@2 ~ ab4 ~@2 bb4@2 b4@2",
  AH: "~ c5@2 ~ db5@2 ~@2 bb4@2 ab4@2 ~ gb4@2 g4@2 bb4@2 e4@3 d4 ~",
  AI: "[d4,eb4]@2 ~ b3@2 bb3@2 ab3@2 ~ g3@3 ~ gb3@2 ~@3 f3@2 ~ ab3@2", // Ebmaj7
  AJ: "~ b3@2 eb4@2 db4@2 ~ b3@2 bb3@3 ~@6 db4 ~ e4 ~ g4", AK: "g4 ab4@4 ~@3 eb4@2 ~@2 b3@2 bb3@3 ~ ab3@2 ~@4",
  AL: "bb4@3 eb4 f4@2 ~ eb4 ~ db4@2 c4@2 ~ b3@9 ~",
  AM: "~@3 bb3@2 ~ bb3 ~ g3@2 ab3@2 bb3 ~ b3@2 ~ db4@2 eb4@2 ~ f4@2, ~@5 b3@2 ~@17",
  AN: "~ g4@2 ab4 ~ a4@2 ~ bb4 ~ b4@2 ~ c5 ~ db5@2 b4 ~@2 db5@2 b4 ~",
  AO: "bb4@2 ~@2 [e4,e5]@2 [f4,f5]@2 f5 f4 f5 ~ f4 f5 f4 f5 f4 f5 ~ f4 f5 f4 f5 ~", // E F
  AP: "f4 ~ f4 ~ f5 f4 ~ f5 f4 f5 ~ f4 f5 ~ f4 ~@9, ~ f5@2 ~@21",
  AQ: "[~@3 [g4,ab4,g5] ab5 ~ [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, ~@20 [d3,d4] ~@27]/2", // Abmaj7 F Db Bb Gb F Eb F …
  AR: "~@3 g4 ab4@4 ~@2 [gb4,bb4]@8 ~ db4@3 ~@2, ~@3 c5@5 ~@16", // Gb
  AS: "db4@3 eb4 ~@4 [ab4,c5]@5 ~ [gb4,bb4]@8 ~@2, ~@8 g4 ~@15", // Ab Gb
  AT: "[[d4,eb4] ~ db4 bb3 ~ a3 ab3 ~ gb3 ~@4 [ab4,c5]@5 ~@2 gb4@10 ~@2 a4@2 ab4 gb4 ~ eb4 ~ db4@2 ~@2 bb3 ~ ab3 ~@2 eb3@19 ~@5, ~@13 g4 ~@5 bb4@10 ~@18 gb3@2 ~@23]/3", // Ebmaj7 Ab
  AU: "~@3 [gb4,bb4] ~@6 [eb4,gb4,bb4]@2 ~@4 g4@8, ~@7 a3@5, ~@5 eb4@3", AV: "~@3 [e4,g4,b4] ~@6 [e4,g4,b4]@2 ~@12",
  AW: "~@3 [e4,g4,b4] ~@6 [e4,g4,b4]@2 ~@3 b4@3 bb4@2 b4@2 c5 ~", // Em
  AX: "c5@3 ~ e5@2 ~@2 c5@2 a4@3 ~@2 gb4@3 g4@2 a4@2 bb4 ~", AY: "b4@3 ~ d5@2 ~@2 b4 ~ g4@3 ~ e4@3 gb4@2 g4@3 ab4@2",
  AZ: "a4@3 c5@2 ~@2 a4@2 gb4@2 ~@4 d4@2 e4@2 gb4@3 gb4@2", BA: "g4@3 gb4@2 g4@2 ~ a4@2 b4@3 ~@2 b4@3 bb4@2 b4@2 b4@2",
  BB: "c5@3 e5@2 ~@3 c5@2 a4@3 ~@2 gb4@3 g4 ~ a4@2 bb4@2", BC: "b4@3 ~ d5@2 ~@2 b4@2 g4@3 ~ e4@3 gb4@2 g4@3 ab4 ~",
  BD: "a4@3 c5@2 ~@2 a4@2 gb4@3 ~@3 d4@2 gb4@2 c5@3 a4@2", BE: "gb4@4 ~ b4@3", BF: "~@3 [g4,b4] ~@6 [e4,g4,b4]@2 ~@12",
  BG: "~@3 [g4,b4] ~@6 [g4,b4]@2 ~@12", // G
})).s("gm_electric_guitar_jazz").gain(0.15).pan(0.6)

// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note("<~@29 A@3 B ~@63 C ~@11 D E F@9>".pickRestart({
  A: "~@8 f4@2 ~ f4@2 ~ f4@2 ~@6 ab4@2, gb4@6 gb4@6 ~ gb4@6 gb4@5, ~@2 f4@3 f4@3 ~@10 f4@3 f4@3, ~@3 ab4@6 ~ ab4@6 ab4@6 ~@2",
  B: "f4 ~ ab4 f4 ~ gb4 f4 ~@12 [eb4,gb4]@4 ~", C: "~@7 g4@5, ~@13 eb4@11", D: "~@3 e4 ~@20", E: "~@3 e4 ~@6 e4@2 ~@12",
  F: "~@3 [e4,g4,b4] ~@6 [e4,g4,b4]@2 ~@12", // Em
})).s("gm_electric_guitar_jazz").gain(0.07).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@9 B A C A@3 C A@3 D A@7 C A@5 B A C E A@2 C F A@2 G A@3 H A B A C A@5 B A I E A@6 J A@5 B C K A@9 B A C A@3 C A@3
  D A@7 C A@4 L ~@3 L ~@5
>`.pickRestart({
  A: "x ~@2 x", B: "x ~@18 x ~@4", C: "x ~@8 x ~ x", D: "x ~@2 x ~@9 x ~@8 x ~", E: "~@3 x",
  F: "x ~@2 x ~@9 x ~@4 x ~@5", G: "x ~@2 x ~@4 x ~@4 x ~@10", H: "~@4 x ~@4 x ~@2", I: "x ~@10 x",
  J: "x ~@2 x ~@9 x ~@10", K: "x ~@4 x ~ x ~ x ~ x", L: "x",
})).gain(0.1)

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

// drums · snare
const snare = s("sd").struct(`<
  A B C D E F G D H I J F K I F L M J N D O I J I D P Q R S F G D H I J F T I F D M J N D U F G D V I J F W F G D H I J
  F X I F L Y J N D Z F G D H I C I AA J C J C F G D H I J F K I F L M J N D AB I J I D P Q R AC J AD AE AD AE Q AF ~@7
>`.pickRestart({
  A: "~@23 x", B: "x ~@7 x ~@8 x ~@3 x!2 ~", C: "~@8 x ~@5 x ~@2 x ~@3 x!2 ~", D: "~@8 x ~@5 x ~@4 x ~ x!2 ~",
  E: "~@8 x ~@4 x ~@3 x ~@3 x!2 ~", F: "~@8 x ~@8 x ~@4 x ~", G: "~@8 x ~@12 x!2 ~", H: "~@3 x ~@6 x ~@6 x ~@3 x!2 ~",
// … 133 more lines

More by Dave Brubeck