Strudelify
Take Five cover art

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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "A.PIANO 2"
const piano = note(`<
  A B C D C@5 D@2 C E@4 F@3 G H C@4 D@2 C I@6 J@2 K@2 L@3 M N O P Q R S T U V W X@3 Y Z@3 ~ AA@3 AB AC@4 AD AE AF@6 AG B
  C AH AI AJ@7 AK AL AM AL AN AL AM AO AP AJ@7 AQ AR AS AT AU AT AU AV ~@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 ~ [gb3,bb3,eb4] ~@4 bb2@4 ~ [bb3,db4]@2 ~@2 eb2@2 ~ [gb3,bb3,eb4] ~, ~@7 [db3,ab3] ~@4", // Ebm Bbm Ebm Db5
  E: "[~@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
  F: "[~@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
  G: "~@3 [gb3,b3] ~@9 [f3,b3,ab4]@2 ~@7 [ab3,b3,eb4,g4] ~", // B5 Fdim Abm
  H: "~@5 [ab3,b3,eb4,g4]@3 ~@2 [ab3,d4,gb4]@3 ~ [ab3,d4,gb4]@5 ~@3 [gb3,bb3,eb4] ~", // Abm Abm7b5 Ebm
  I: "[~@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 …
  J: "[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
  K: "[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
  L: "[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
  M: "~@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
  N: "~ db4@5 ~@2 [ab3,bb3,db4,f4] ~@3 bb3 b3 eb4 ~ g4 b4@2 bb4 ~@2 bb4 ab4", // Bbm7
  O: "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
  P: "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
  Q: "f5@2 ~@8 [gb3,bb3,db4,f4]@2 ~ [gb3,bb3,db4,f4] ~@6 f5@2 ab5@2", // Gbmaj7
  R: "~ f5@3 ~ db5@3 ~@2 db5@3 [bb3,db4,f4] ~@9 [ab3,db4,gb4], ~@13 eb5@2 ~@9", // Bbm Dbsus4
  S: "~@5 [gb3,bb3,db4]@5 ~@2, ~@9 [bb5,eb6]@14 ~, ~@9 f4@10 ~@5, ~@9 a5@2 ~@13", // Gb Eb5
  T: "~@5 [bb5,eb6]@4 ~@2 ab5 gb5 ~ [ab5,eb6]@3 gb5 ~@6, ~@5 a5 ~@3 eb6@3 ~@12, ~@5 a5 ~@6", // Eb5 Ab5
  U: "~@3 [g3,db4,gb4] ~@8 eb5@2 ~ gb5 ~ ab5@2 ~ a5@2 bb5@2, ~ [gb3,bb3,db4,f4] ~", // Gb Gbmaj7
  V: "~ a5@2 ab5@2 gb5@2 ~ eb5 ~ gb5@2 ~ ab5@2 ~@2 ab5@3 ~ gb5@2 ~",
  W: "bb5@12 ~ [bb3,db4,f4] ~@5 ab5@2 ~ f5@2, ~@9 eb5 ~@2", // Bbm
  X: "[~ 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
  Y: "~@3 [bb3,eb4,ab4,db5,f5,ab5] ~@20", // Bbm7
  Z: "[~@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
  AA: "[~@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
  AB: "~@3 [gb3,b3,eb4] ~@9 [f3,b3,eb4,ab5,eb6,ab6] ~@8 [gb3,b3,eb4,db5,gb5,bb5] ~", // B Fm7b5 Ebm7
  AC: "[~@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 …
  AD: "[eb4,f4,b4,g5]@3 eb5 ~@10 [ab3,d4,ab4,d5,gb5]@4 ~@6", // Ebaug Abm7b5
  AE: "~@5 [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  AF: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 [db3,ab3,bb3]@2 ~@3 eb2@2 ~ [gb3,bb3,eb4] ~", // Ebm Bbm7 Ebm
  AG: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 [ab3,bb3]@2 ~@3 eb2 ~@2 [gb3,bb3,eb4] ~, ~@14 db3@5 ~@5", // Ebm Absus2 Ebm
  AH: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 bb2@4 db3 ~@4 eb2 ~@2 [gb3,bb3,eb4] ~", // Ebm
  AI: "~@3 eb2 ~ [gb3,bb3,eb4] ~@4 b2@4 [b1,a3,b3,d4]@5 e2@2 ~ [g3,b3,e4] ~", // Ebm Bm7 Em
  AJ: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4]@2 ~@3 e2@2 ~ [g3,b3,e4] ~", // Em Bm7 Em
  AK: "~@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
  AL: "~@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
  AM: "~@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
  AN: "~@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
  AO: "~@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
  AP: "~@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
  AQ: "~@3 e2 ~ [g3,b3] ~@4 b2@4 d3@2 ~@3 e2 ~@2 [g3,b3,e4] ~", // G Em
  AR: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4] ~@4 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  AS: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3,d4]@2 ~@3 e2 ~@2 [g3,b3,e4] ~", // Em Bm7 Em
  AT: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3] ~@4 e2@2 ~ [g3,b3,e4] ~", // Em Bm7 Em
  AU: "~@3 e2 ~ [g3,b3,e4] ~@4 b2@4 [d3,a3,b3]@2 ~@3 e2 ~@2 [g3,b3,e4] ~", AV: "~@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 M N M N O ~@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,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@2 C@2 D@2 E F G F H F I J K C D@2 C@2 D@2 C@2 D C D C D C L M N O N P Q R S C D@2 C@2 D@2 T C D@2 C@2 D@2 U
  M N O N P Q R V C D@2 C@2 D@2 T W C W X Y Z@2 Y@2 Z@2 AA AB AC AB AD AB AC AE AF Y AG Z Y@2 Z@2 Y Z Y Z Y Z Y Z Y Z Y
  Z Y Z AH ~@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 ~ bb2@4 db2@5 ab2@5",
  F: "~@3 ab2@4 ~ ab2 ~ db2@3 ~ f2@3 ~@2 gb2@5", G: "~@3 gb2@4 ~@3 eb2@3 ~ bb2@2 ~@3 ab2@5",
  H: "~@3 gb2@4 ~ gb2 ~ eb2@3 ~ g2@2 ~@3 ab2@5", I: "~@3 gb2@4 ~@3 a1@3 ~ a2@5 ab2@5",
  J: "~@3 ab2@4 ~ ab2 ~ db2@3 ~ b2@3 ~@2 bb1@5", K: "~@3 bb1@4 ~@3 f2@4 bb2@2 ~@8",
  L: "~@3 eb2@6 ~ bb1@3 ~ a1@4 ~ ab2@5", M: "ab1@5 b1@5 db2@4 ab2@5 gb2@5", N: "f2@5 e2@5 eb2@4 g2@5 ab2@5",
  O: "bb2@5 b2@5 ~ ab2@2 ~ db2@5 gb2@5, ~@10 db3@2 ~ f2@2 ~@9", P: "gb2@5 eb2@5 db2@4 f2@5 gb2@5",
  Q: "f2@5 e2@5 eb2@4 bb1@5 ab1@5", R: "bb1@5 b1@5 db2@4 f2@5 f2@5", S: "f1@5 bb1@5 bb2@4 bb1@5 eb2@4 ~",
  T: "~@3 eb2@5 ~@2 bb2@3 ~ db2@4 ~ eb2@4 ~", U: "~@3 eb2@6 ~ bb2 a2 ~ ab2 gb2 ~ eb2 ~ ab1@6",
  V: "f1@5 b1@5 bb1@4 bb2@5 eb2@4 ~", W: "~@3 eb2@6 ~ bb1@3 ~ db2@3 ~@2 eb2@4 ~", X: "~@3 eb2@7 b1@3 ~ b1@3 ~@2 e2@4 ~",
  Y: "~@3 e2@6 ~ b2@3 ~ d2@3 ~@2 e2@4 ~", Z: "~@3 e2@6 ~ b1@3 ~ d2@3 ~@2 e2@4 ~", AA: "~@3 e2@6 ~ b2@4 d2@5 a2@5",
  AB: "~@3 a2@4 ~ a2 ~ d2@3 ~ gb2@3 ~@2 g2@5", AC: "~@3 g2@4 ~@3 e2@3 ~ b2@2 ~@3 a2@5",
  AD: "~@3 g2@4 ~ g2 ~ e2@3 ~ ab2@2 ~@3 a2@5", AE: "~@3 a2@4 ~ a2 ~ d2@3 ~ c3@3 ~@2 b1@5",
  AF: "~@3 b1@4 ~@3 gb2@4 b2@2 ~@3 e2@4 ~", AG: "~@3 e2@6 ~ b1@3 ~ d2@4 ~ e2@4 ~", AH: "~@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@11 C@4 D@5 B@7 E@2 ~@2 F@3 G@8 H@3 I ~ J K L@2 M N O P Q@2 R S T U@2 V W X@2 Y Z@2 AA AB@3 AC AD AE@2 ~ AF AG AH@7
  AI@4 AJ@5 AH@12 AK AL ~@10
>`.pickRestart({
  A: "~@22 [eb4,gb4,bb4] ~", B: "~@5 [eb4,gb4,bb4]@2 ~@15 [eb4,gb4,bb4] ~",
  C: "[~@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
  D: "[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@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@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
  E: "[~@5 [eb4,gb4,bb4]@2 ~@15 ab4@6 ~@4 gb4@6 gb4@4 ab4@2 ~@2 ab4 ~]/2", F: "[~@19 [f4,ab4]@33 ~@15 [eb4,gb4]@5]/3",
  G: "[~@3 [f4,ab4]@27 ~@13 gb4@14 f4@23 ~@2 e4@9 gb4@13 ~ f4@23 ~@2 e4@9 gb4@13 ~@2 f4@10 f4@13 ~ e4@9 gb4@5]/8", // Fm
  H: "[~@9 f4@9 ~ g4@14 gb4@10 f4@17 ~@2 [f4,ab4]@3 ~@2 [gb4,bb4]@4 ~]/3", I: "[f4,ab4]@5 ~@3",
  J: "~@22 [bb3,db4,f4] ~", K: "~@4 db4 [bb3,db4,f4]@3 [bb3,db4,f4] ~ db4@2 ~@3 db4@3 eb4 ~@3 [bb3,db4,f4] ~",
  L: "~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,db4,f4] ~@5 db4@3 ~@2 db4@2 ~ [bb3,db4,eb4,f4] ~", // Bbm
  M: "~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,db4,f4] db4@3 ~@3 db4@2 eb4 ~@6", N: "~@19 f4@2 ~@2 ab4",
  O: "~@3 gb4 ~@4 d4 ~ f4@3 d4 eb4@4 ~@6", P: "~@10 eb4@2 ~@2 a4 bb4@3 ~ [bb4,eb5]@4 ~, ~@13 ab4@2 ~@4 a4@2 ~@3",
  Q: "[[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
  R: "~@10 eb4@2 ~ gb4 ~ ab4@3 ~ ab4 [ab4,a4] ~ gb4 ~", // Amaj7
  S: "ab4@3 ~@2 gb4@2 ~ eb4@3 ~@2 ab3@3 ~@3 gb3@3 eb3@2, ~@13 a3 ~@10", T: "~@3 eb3 ~@18 eb3 ~",
  U: "[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",
  V: "bb3@2 ~ ab3@2 g3@3 ~@2 gb3@2 ~@3 f3@2 ab3@2 ~ b3@2 eb4@2", W: "db4@2 ~ b3@2 bb3@3 ~@6 db4 ~ e4 ~ g4!2 ab4@4",
  X: "[~@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
  Y: "~ bb3 ~ g3@2 ab3@2 bb3 ~@2 b3@2 db4@2 eb4@2 ~ f4@2 ~ g4@2 ab4 ~, b3 ~@11",
  Z: "[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
  AA: "f4 ~ f5 f4 f5 ~ f4 f5 ~ f4 ~@12 [g4,g5] [ab4,ab5]", // G Ab
  AB: "[~ [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 …
  AC: "~@3 [ab4,c5]@5 ~@2 gb4@8 ~ d4 eb4 db4 bb3 ~, ~@3 g4 ~@5 bb4@8 ~@7", // Ab
  AD: "a3 ~ ab3 gb3 ~@4 [ab4,c5]@5 ~@2 [gb4,bb4]@9, ~@8 g4 ~@15", // Ab Gb
  AE: "[~@3 a4@2 ab4 ~ gb4 eb4 ~ db4@2 ~@3 bb3 ab3 ~ gb3 eb3@19 ~@10]/2", AF: "~@22 [gb4,bb4] ~",
  AG: "~@5 [eb4,gb4,bb4]@2 ~@4 g4@8 ~@3 [e4,g4,b4] ~, ~@9 a3@10 ~@5, ~@10 eb4@9 ~@5", // Ebm Em
  AH: "~@5 [e4,g4,b4]@2 ~@15 [e4,g4,b4] ~", // Em
  AI: "[~@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
  AJ: "[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@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@3 ~@2 d4@2 gb4@2 c5@3 a4@2 gb4@12 ~@3 b4@9 ~@3 [e4,g4,b4] ~, ~@9 b4 ~@50]/5", // Em
  AK: "~@5 [e4,g4,b4]@2 ~@15 [g4,b4] ~", AL: "~@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@6 E N B@5 C O P 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: "~@8 x ~@10 x ~@4",
  O: "~@13 x ~@3 x ~ x ~@4", P: "~@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 B N H AB F G H I J C J AC B C B C F G H I J B F K J F L M B N H AD J B J D P Q R AE B AF AG AF AG AH AI
  ~@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",
  E: "~@3 x ~@4 x ~@4 x ~@2 x!2 ~@6", F: "~@3 x ~@9 x ~@3 x ~@6", G: "~@3 x ~@12 x!2 ~@6",
  H: "~@3 x ~@6 x ~@3 x ~ x!2 ~@4 x ~", I: "~@5 x ~@7 x ~@2 x!2 ~@6", J: "~@3 x ~@9 x ~@10",
  K: "~ x ~ x ~@4 x ~@4 x!2 ~ x!2 ~@6", L: "~@3 x ~@6 x ~@5 x!2 ~@6", M: "~@3 x ~@4 x ~@4 x!2 ~ x ~@7",
  N: "~@3 x ~@4 x ~ x ~@3 x ~ x!2 ~@6", O: "~@3 x ~@6 x!2 ~ x!2 ~@2 x ~@6", P: "~@3 x ~@6 x ~@3 x ~@9",
  Q: "~@3 x ~@6 x ~@11 x ~", R: "~@13 x ~@2 x!2 ~@4 x ~", S: "~@3 x ~@4 x ~ x!2 ~ x!2 ~ x!3 ~@5",
  T: "~ x ~ x ~@4 x ~ x ~@2 x!5 ~@6", U: "~@8 x ~ x!10 ~@4", V: "~@3 x ~@6 x ~@3 x ~ x!2 ~ x ~ x!2 ~",
  W: "x ~@4 x ~@7 x ~@2 x!2 ~@6", X: "~ x ~ x ~@4 x ~@4 x!2 ~@9", Y: "~ x ~ x ~@4 x ~ x!2 ~ x!5 ~@6",
  Z: "~@3 x ~@6 x ~@5 x!2 ~@3 x ~@2", AA: "x ~@2 x ~@2 x ~ x ~ x ~@2 x!2 ~ x ~ x ~@5",
  AB: "~@3 x ~@6 x!2 ~@2 x ~ x ~@7", AC: "x!2 ~ x ~@4 x ~@4 x!2 ~ x!2 ~@6", AD: "~@3 x ~@6 x!2 ~ x ~@3 x ~@6",
  AE: "~@3 x ~@4 x ~ x!2 ~ x ~@3 x ~@6", AF: "~@3 x ~@5 x ~@7 x ~@6", AG: "~@3 x ~@13 x ~@6", AH: "~ x ~ x ~@4",
  AI: "~ x ~@6",
})).gain(0.32)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  A ~@5 B ~@5 C ~@2 D ~@4 E ~@9 B ~@5 C ~@9 B ~@5 C ~ B ~@5 C ~@2 D ~@4 E ~ B ~@11 B ~@5 C ~@2 D ~@4 E ~@9 F@4 G@2 H I H
  I H I ~@3
>`.pickRestart({
  A: "~@17 x ~@6", B: "~@13 x ~@10", C: "x", D: "~@7 x ~@4", E: "~ x ~", F: "~@13 x ~@2 x ~@7", G: "~@13 x ~@2 x!2 ~@6",
  H: "~@3 x ~@5 x ~@3 x ~@2 x!2 ~@6", I: "~@3 x ~@9 x ~@2 x!2 ~@6",
})).gain(0.08)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~ A@27 B A@7 C D B E F E@3 D A@3 G A@4 ~@7 B F E H E@4 I A@42 B G ~@8>".pickRestart({
  A: "x ~@6 x ~@4", B: "x", C: "x ~@13 x ~@4 x ~@4", D: "x ~@4 x ~@18", E: "x ~@4 x ~@4 x ~@3 x ~@4 x ~@4",
  F: "~@5 x ~@4 x ~@3 x ~@4 x ~@4", G: "~@7 x ~@4", H: "x ~@4 x ~@2 x ~ x ~@3 x ~@4 x ~@4", I: "x ~@4 x ~@4 x ~@13",
})).gain(0.64)

// drums · pedal hat · soft notes
const pedal_hat_soft = s("hh").struct("<~@28 A ~@8 B C ~ D ~@12 E@7 ~@51 A D E@5 ~@3>".pickRestart({
  A: "~@7 x ~@4", B: "~@10 x ~@3 x ~@4 x ~@4", C: "~@5 x ~@4 x ~@3 x ~@4 x ~@4", D: "x", E: "x ~@6 x ~@4",
})).gain(0.4)

// drums · mid tom
// … 103 more lines

More by Paul Desmond