Strudelify
A Night in Tunesia cover art

A Night In Tunisia

A Night in Tunesia

Gillespie Dizzy

KeyF majorTempo182 bpm
0:00/0:00
// A Night in Tunesia — Gillespie Dizzy
// 182 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 188 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(182/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A B A B A B A B C D@3 E@3 F C G H@2 I@2 J@2 K L@4 M@3 N O P@4 Q@7 R@4 S@4 ~@3 T U@2 V W@3 X@2 Y@2 Z@3 AA@2 AB AC@3 AD
  AE@4 AF AG@2 AH@2 AI@2 AJ@2 AK AL@2 AM AN AO@2 AP AQ@2 AR AS AT AU AV@2 AW AX AY@6 AZ@2 BA@2 BB@2 BC ~ BD ~ BC ~ BE ~
  BC ~ BF ~ BC ~ BG ~ BH BI BJ@2 BK BL BM@2 BN@2 BO BP BQ BL BR BS@5 BT@3 BU@2 BV@3 BW@2 BX BY@8 BZ@2 CA@4 ~@7
>`.pickRestart({
  A: "~@2 [bb3,eb4]@4 [ab3,db4]@2 [bb3,eb4]@2 [ab3,db4]@2 [bb3,eb4]@2 [ab3,db4] ~, ~ e3@6 ~", // Eb5 Db5 Eb5 Db5 Eb5 Db5
  B: "~@2 [b3,e4]@4 [a3,d4]@2 [b3,e4]@2 [a3,d4]@2 [b3,e4]@2 [a3,d4] ~, ~@2 f3@13 ~", C: "[g3,db4,f4,c5,f5,c6]",
  D: "[[f3,b3,e4,b4,e5]@10 [f3,b3,e4,g4,b4]@4 [g3,db4,f4,a4,c5]@15 ~@5 [a4,c5]@2 [f3,b3,e4,g4,b4]@12, ~@5 [f3,b3,e4,g4,b4] ~@2]/3", // E Em F Am Em
  E: "[[g3,db4,f4,a4,c5]@9 ~ [g3,db4,f4,a4,c5]@4 [f3,b3,e4,g4,b4]@8 [f3,b3,e4,b4,e5]@8 [e3,bb3,d4,g4,bb4,d5]@9 ~ [a2,g3,g4,bb4,db5,e5]@8]/3", // F Em E Em7b5 A7
  F: "[d3,c4,e4,f4,a4]", G: "~@2 [f3,b3,e4,b4,g5] ~@7 [f3,b3,e4,b4,g5] ~@5",
  H: "[~@10 [g3,db4,f4,c5,a5] ~@3 [f3,b3,e4,b4,g5]@17 ~]/2", // F Em
  I: "[[g3,db4,f4,c5,f5]@6 [g3,db4,f4,c5,f5] ~@7 [f3,b3,e4,b4,e5]@17 ~]/2", // Csus4 E
  J: "[[e3,bb3,d4,g4,bb4]@8 [g3,db4,f4,a4,c5]@6 ~ [d3,c4,e4,f4]@17, ~@14 a4@17 ~]/2", // Em7b5 F Dm7
  K: "[a3,eb4,g4,b4,d5]@11 [c4,g4,b4] ~@3 [f4,gb4,a4,c5]", // G Cmaj7 F
  L: "[~@7 [d4,eb4,gb4,a4] ~@19 [a3,bb3] ~@4 [a3,bb3] ~@6 [a3,bb3] ~@6 [e3,bb3,c4,db4,e4,g4]@16 [e3,bb3,eb4,ab4,c5] ~, ~@15 [c4,d4,f4]@28 ~@21]/4", // D Bbmaj7 C7 Ab Dm7
  M: "[~@11 [e3,bb3,db4,gb4,bb4]@4 [eb3,a3,c4,f4,a4]@15 ~ [e3,bb3,d4]@7 [g3,db4,f4,a4,c5]@10, ~@30 [g4,bb4,d5]@7 ~@11]/3", // Gb7 F7 Em7b5 F Gm
  N: "[g3,db4,f4,c5,f5,c6]@14 [f3,b3,e4] ~, ~@7 [b4,e5]", O: "~@2 [a4,d5] ~ [f3,b3,e4,b4,e5]@12",
  P: "[[g3,db4,f4,a4,c5]@14 ~@4 [a4,c5]@5 [f3,b3,e4] ~@4 [b4,d5]@2 [g3,db4,f4,a4,c5]@9 ~ [g3,db4,f4,c5,f5]@6 ~@4 [c5,f5]@2 ~@2 [f3,b3,e4]@9 ~, ~@14 [f3,b3,e4,g4,b4]@9 ~ [a4,c5]@6 ~@16 [f3,b3,e4,b4,e5]@6 [b4,e5]@11 ~]/4", // F Am E Bm F Csus4 F5 E …
  Q: "[[e3,bb3,d4,g4,bb4,d5]@7 ~ [a2,g3,g4,bb4,db5,e5]@6 ~ [c4,e4,f4,a4]@16 [e2,d3,bb3,d4,e4,a4]@28 [e2,d3,bb3,d4,e4,a4] ~@3 [eb2,db3,bb3,db4,f4,a4]@28 [eb2,db3,bb3,db4,f4,a4] ~@3 [d2,c3,c4,e4,f4,a4]@17, ~@7 d3@8 ~@41]/7", // Em7b5 A7 Fmaj7 Dsus2 Bbm Dm7
  R: "[~@11 [d2,c3,c4,e4,f4,a4] ~@3 [g2,f3,f4]@27 ~ [g2,f3,b3,db4,f4,a4] ~@3 [g2,g3,d4,gb4,a4]@17, ~@14 [b3,db4,a4]@27 ~@5 bb3@17 ~]/4", // Dm7 G7 D Gbm
  S: "[[g2,f3,bb3,d4,f4,a4]@14 ~ [e3,db4,e4]@28 ~ [e3,bb3,db4,a4]@2 ~ [f2,c3,c4,e4,f4,a4]@3 ~@14, ~@14 [gb2,bb3,a4]@28 ~@2 [gb2,e4] ~@19]/4", // Gm7 Dbm A Fmaj7 Gb Gb7
  T: "[g3,db4,f4,c5,f5]@6 ~ [g3,db4,f4,c5,f5] ~@7 [f3,b3,e4,b4,e5]", // Csus4 E
  U: "[~@7 [f3,b3,e4,g4,b4] ~@7 [g3,db4,f4,a4,c5]@16 [f3,b3,e4,g4,b4]]/2", V: "~@2 [a4,c5] ~ [f3,b3,e4,g4,b4]@12",
  W: "[[g3,db4,f4,a4,c5]@14 ~ [f3,b3,e4,g4]@15 ~ [e3,bb3,d4,bb4,d5]@8 ~ [g3,db4,g4,bb4,db5] ~@6 [d3,c4,f4,a4,c5], ~@14 b4@15 ~@19]/3", // F Em Em7b5 Gdim Dm7
  X: "[~@7 [g3,a3] ~@2 [f4,a4] ~@4 [g3,db4,f4,a4]@15 ~ [f3,b3,e4,g4], ~@3 g4 ~@12, ~@7 e4@2 ~@23]/2", // Gsus2 F Dbaug Em
  Y: "[~@6 [g4,b4] [f3,b3] ~@7 [db4,c5]@14 ~@2 [f3,b3,e4,g4,b4], ~@7 [g3,f4,a4]@7 ~@2]/2", // G Fdim Dbmaj7 Em Dm
  Z: "[~@3 [f3,b3,e4,a4,c5]@4 ~@2 e4@3 b4@2 ~ [g3,db4,f4,a4,c5]@7 ~ [g3,db4,f4,c5,f5] ~@6 [f3,b3,e4,b4,e5]@17 ~, ~@8 [f3,b3,a4,c5]@3 ~ d5 ~@35]/3", // Fmaj7 F Csus4 E F
  AA: "[[e3,bb3,d4,g4,bb4,d5] ~@7 [a2,g3,g4,bb4,db5,e5] ~@6 [d3,c4,e4,f4,a4]@16 ~]/2", // Em7b5 A7 Dm7
  AB: "[a3,eb4,g4,b4,d5]@15 [f4,gb4,a4,c5]", // G F
  AC: "[~@7 [d4,eb4,gb4,a4] ~@7 [c4,d4,f4,a4]@23 ~ [bb3,a4,c5]@2 ~@2 bb4@2 ~@3, ~@39 [a3,d4] ~@3 g4 ~@4]/3", // D Dm7 F D5
  AD: "~@15 [c4,db4,e4,g4]", // C
  AE: "[~@7 [c4,db4,e4,g4] ~@20 bb4@2 ~ [e3,bb3,d4,a4]@8 ~@5 [e4,g4]@2 ~ [d3,g3,d4]@14 ~@3, ~@15 [eb3,a3,c4,f4]@15 ~@9 [g3,db4,f4,a4]@7 [c4,f4]@14 ~@4]/4", // C Dsus2 Em G5 F7 Dbaug F5
  AF: "[f3,b3,e4,b4,e5] ~@5 [f3,b4,e5] [b3,e4] ~@8", // E E5
  AG: "[[g3,db4,f4,c5,f5]@12 [g3,db4,f4,c5,f5]@2 ~ [f3,b3,e4,b4,e5]@17]/2", // Csus4 E
  AH: "[[g3,db4,f4,c5,f5] ~@5 [db4,c5,f5] [g3,f4] ~@7 [f3,b3,e4,e5]@16 ~, ~@7 b4@8 ~]/2", // Csus4 Dbmaj7 G7 E
  AI: "[[e3,bb3,d4,g4,bb4,d5]@8 [g3,db4,f4,a4,c5]@7 [d3,c4,e4,f4,a4]@16 ~]/2", // Em7b5 F Dm7
  AJ: "[[g3,db4,f4,a4,c5]@6 ~ [g3,db4,f4,a4,c5]@7 ~ [f3,b3,e4,b4,d5]@4 ~ [f3,b3,e4,c5,e5]@5 ~ [f3,b3,e4,d5,f5]@5 ~]/2", // F Bdim Fmaj7 Bdim
  AK: "[g3,db4,f4,db5,e5]@5 ~ [g3,db4,f4,d5,f5]@5 ~ [f3,b3,e4,eb5,gb5]@4", // Dbdim G7 B
  AL: "[~@3 [f3,b3,e4,g5]@5 [f3,b3,e4,g5,b5]@2 ~@2 [f3,b3,e4,g5,b5]@3 [g3,db4,f4,f5,c6]@9 [g3,db4,f4,f5,c6]@6 b5 [f3,b3,e4,e5], ~@2 e5@5 ~@25]/2", // Em Csus4 E
  AM: "~@10 [f3,b3,e4,e5] ~@5, ~@5 b5 ~@2", // E
  AN: "[e3,bb3,d4,g5]@2 ~@6 [g3,db4,f4,db5,f5] ~@5 [d3,c4,f4,a4,c5,e5]@2, d5 ~@15", // Em7b5 Gm7b5 Dm7
  AO: "[~@7 e4@5 e4 ~@2 [g3,db4,f4,a4]@15 [e4,g4]@2, ~@7 [g3,a3,f4,a4,c5]@7 ~@16 [f3,b3] ~]/2", // Dbaug Em F Fdim
  AP: "~@4 [f3,b3,e4,g4]@6 ~ [f3,b3,d4,f4] ~@4", // Em Bdim
  AQ: "[~@3 [g3,db4,f4,a4] ~@4 [g3,db4,a4,c5]@5 ~@2 [f3,b3,e4,g4,b4]@4 [a4,c5] [f3,b3,e4,g4,b4]@11 ~]/2", // Dbaug A7 Em Am Em
  AR: "~@7 [g3,db4,f4,a4,c5]@3 ~ [g3,db4,f4,c5,f5]@5", AS: "[f3,b3,e4,b4,e5]@6 ~ [f3,b3,e4]@9, ~@6 [b4,e5]@9 ~",
  AT: "[e3,bb3,d4,bb4,d5]@8 [g3,db4,g4,bb4,db5]@7 ~", AU: "[d3,c4,g4,a4,d5]@6 e4@4 e4@5 ~, ~@6 [g3,a3,f4,a4]@9 ~",
  AV: "[[a3,eb4,g4,b4]@6 ~ [c4,a4,c5]@8 [gb3,c4,f4,gb4,a4]@2 ~@6 [d4,eb4,gb4,a4]@3 ~ d4 ~@4]/2", // Ebaug F D
  AW: "[c4,d4] ~@6 c4@2 ~@7, f4 ~@2 [d4,f4] ~@4", AX: "~@7 [a3,d4]@4 ~@5, ~@3 [bb3,a4,d5]@2 ~@3",
  AY: "[~@6 [e3,bb3,eb4,c5,db5,e5,g5]@7 ~ [e3,bb3,db4,a4,bb4,db5,e5]@8 ~ c4@5 c4@2 ~ [eb3,a3,c4,f4]@8 c5@2 a4@2 ~ [g4,c5]@2 ~ [e3,bb3,d4,g4,bb4]@7 ~@6 g4@2 ~@4 [g3,db4] ~@5 [g3,db4]@6 [f3,b3,e4]@7 ~ [f3,b3,e4] ~@9, ~@22 [db4,g4]@8 ~@25 [g3,db4,gb4,a4]@7 ~@34, ~@23 e4@8 ~@8 ab4 ~@23 f4@15 ~@18]/6", // C7 A F7 C5 Em7b5 Gdim E Dbdim …
  AZ: "[~@3 a4 c5 ~ [g3,db4,f4,a4,f5] ~@3 [g3,db4,f4,a4,f5]@3 ~ [f3,b3,e4,b4,e5]@16 ~ [g3,db4,f4,c5,f5,c6]]/2", // Dbaug E Csus4
  BA: "[~@12 [g3,db4,f4,c5,f5,c6]@2 ~ [f3,b3,e4,b4,e5,b5]@16 ~]/2", // Csus4 E
  BB: "[[e3,bb3,d4,g4,bb4,d5]@8 [a2,g3,g4,bb4,db5]@6 ~ [d3,c4,g4,a4,c5]@16 ~]/2", // Em7b5 Gdim Dsus4
  BC: "[eb3,db4,g4,c5,db5,f5]@14 [d3,c4,f4,a4,c5,e5] ~", // Cm Dm7
  BD: "~@2 [e2,d3,bb3,d4,e4,g4] ~@3 e4@4 f4@2 e4@2 [d2,d3,a3,c4,d4,f4] ~, ~@6 [a2,g3,bb3,db4,g4]@7 ~@3", // Em7b5 Dm7 Gdim
  BE: "~@2 [e2,d3,bb3,d4,e4,g4] ~@3 e4@4 f4@2 e4@2 [d2,d3,a3,c4,d4]@2, ~@6 [a2,g3,bb3,db4,g4]@7 ~ f3 ~", // Em7b5 D7 Gdim
  BF: "~@3 [e2,d3,bb3,d4,e4,g4] ~@6 f4@2 e4@2 [d2,d3,a3,c4,d4,f4] ~, ~@6 [g3,bb3,g4]@7 ~@3, ~@7 [a2,db4]@7 ~@2, ~@7 e4@5 ~@4", // Em7b5 Dm7 Gm A
  BG: "~@2 [e2,d3,bb3,d4,e4,g4] ~@3 e4 ~@4 e4@2 ~ [d3,f3,a3,c4,d4]@2, ~@6 [a2,g3,bb3,db4,g4]@7 ~ d2 ~, ~@10 f4@3 ~@3", // Em7b5 Dm7 Gdim
  BH: "[g3,db4,f4,a4,c5]", BI: "[f3,b3,e4,g4,b4]",
  BJ: "[[g3,db4,f4,a4]@10 [g3,db4,f4,a4]@3 ~ [f3,b3,e4,g4,b4]@4 [f3,b3,e4,a4,c5]@13 ~]/2", // Dbaug Em Fmaj7
  BK: "[g3,db4,f4,c5,f5]@6 [g3,db4,f4,c5,f5]@9 ~", BL: "[f3,b3,e4,b4,e5]@15 ~",
  BM: "[[e3,bb3,d4,g4,bb4]@8 [g3,db4,f4,a4]@6 [d3,c4,e4,f4,a4]@17 ~]/2", // Em7b5 Dbaug Dm7
  BN: "[[g3,db4,f4,c5,f5]@6 [g3,db4,f4,c5,f5] [f3,b3,e4,b4,e5]@9]/2", // Csus4 E
  BO: "[g3,db4,f4,c5,f5]@7 ~ [g3,db4,f4,c5,f5] ~@5 [f3,b3,e4] ~, ~@7 [b4,e5]", BP: "~@2 [c5,f5] ~ [f3,b3,e4,b4,e5]@12",
  BQ: "[g3,db4,f4,c5,f5]@15 ~", BR: "[e3,bb3,d4,bb4,d5]@7 ~ [a2,g3,g4,bb4,db5]@7 ~",
  BS: "[[d3,c4,g4,a4,c5]@6 ~@4 [f4,a4]@4 [a3,eb4,g4,b4,d5]@16 ~ [f4,gb4,a4,c5]@7 [d4,eb4,gb4,a4]@8 ~ [a3,bb3,c4,d4,f4]@14 ~@5 bb4 ~ [a3,bb3,d4,a4,c5]@6 ~ [bb3,d4,g4,bb4]@2 ~@3, ~@6 [g3,a3,e4,g4]@8 ~@48 [bb3,a4,c5]@5 ~@13, ~@63 [a3,d4]@5 ~@7 a3 ~@4]/5", // Dsus4 F G F D Dm7 D7 Gm …
  BT: "[~@6 [e3,bb3,eb4,c5,db5,e5,g5] ~@7 [e3,bb3,eb4,c5,db5,e5,g5]@11 ~ [e3,bb3,db4] [a4,bb4,db5,e5] ~@3 [a3,g4,a4,c5]@15 bb4 [e3,bb3,d4,g4], ~@10 eb3@5 ~]/3", // C7 Bbdim A Am7 Em7b5
  BU: "[~@7 [g3,db4,gb4,a4]@5 g4@2 [g3,db4,f4]@14 [g3,db4,f4]@2 [f3,b3,e4] ~, ~@12 e4 ~@19]/2", // Gbm Gm7b5 E
  BV: "[~@10 [f3,b3,g4,b4]@4 [g3,db4,f4,a4,c5]@9 ~ [g3,db4,f4,c5,f5]@6 [f3,b3,e4,b4,e5]@17 ~]/3", // G7 F Csus4 E
  BW: "[[g3,db4,f4,c5,f5] ~@7 [g3,db4,f4,c5,f5]@6 [f3,b3,e4,b4,e5]@17 ~]/2", // Csus4 E
  BX: "[e3,bb3,d4,g4,bb4]@7 ~ [g3,db4,f4,a4]@6 ~ c4, ~@7 [d3,e4,g4]", // Em7b5 Dbaug Em7
  BY: "[~@7 a3@7 ~ [e2,d3,e4,a4]@27 [e4,a4] [e2,d3,d4] ~@2 [eb2,db3,bb3,db4,f4,a4]@28 [bb3,db4] [eb2,a4]@2 ~ e4 e4@27 ~ [d2,c3,c4,e4,f4,a4] ~@3 [g2,f3,f4]@17, ~@6 [g3,d4,f4]@8 [bb3,d4]@27 ~ bb3@2 ~@31 [db3,f4] ~@2 [d2,c3,c4,f4,a4]@28 ~@4 [b3,db4,a4]@18]/8", // Dsus2 A5 E7 Bbm Ebdim Dm7 G7 Bb …
  BZ: "[~@10 [g2,f3,b3,db4,f4,a4] ~@3 [g2,g3,bb3,d4,gb4,a4]@18]/2", // Gm
  CA: "[[g2,f3,bb3,d4,f4,a4]@10 bb3 [g2,f3,d4,f4,a4] ~@3 [gb2,e3,e4]@29 [gb2,e3,bb3,db4,e4,a4]@3 [c4,f4,a4]@2 ~@15, ~@14 [bb3,db4,a4]@29 ~@4 [f2,c3,e4] ~@16]/4", // Gm7 Dm Gb7 F Bbm Fmaj7
})).s("gm_piano").gain(0.26)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B A B A B A B A C A B A B D B A B A B A B D E F G H I J K L M A B A B A B D N@8 O@6 ~@3 P Q P Q P Q R S T U V W T U
  X S Y Z AA AB J K AC R AD U V AE AF Q X S T U V AG AH AI R S AJ AK AL AM AL AM AN AO AP AQ AR I AS AT AC X AU AV AW AX
  AY AZ X S BA@2 BB@2 BC@2 BB@2 BC@2 BB@2 BC@2 BB@2 A B A B A B D B A B A B A B D B Y BD BE I BF AT AC BG A B A B A B
  BH@7 BI@4 BJ@2 BK@8 ~
>`.pickRestart({
  A: "eb2 bb2 db3 eb3@2 db3@2 bb2", B: "d2 a2 c3 d3@2 c3@2 a2", C: "d2@2 a2@2 c3@2 d3@4 c3@4 a2 ~", D: "e2 a1",
  E: "d2 a2 c3 d3@2 c3@3", F: "a2@4 eb2@4 a1@4 eb2@3 a1", G: "d2@4 e2@3 d2 gb2@4 d2@3 ~",
  H: "g2@3 g1 gb2@3 ~ g2@4 d2@3 g1", I: "g2@4 d2@4 c2@4 g2@3 c2", J: "g2@3 ~ a2@3 g2 bb2@4 b2@4",
  K: "c3@4 g2@4 c2@4 g2@3 c2", L: "f2@4 g2@4 a2@4 f2@3 ~", M: "e2@3 ~ bb2@3 ~ a2@4 e2@4",
  N: "[d2@10 ~ d2 ~@3 e2@26 ~@2 e2 ~@3 eb2@26 ~@2 eb2@2 ~@2 d2@26 ~@2 d2@2 ~@2 g2@17]/8",
  O: "[~@11 g2 ~@3 g2@26 ~@2 g2@2 ~@2 gb2@27 ~@2 gb2@2 ~ f2@2 ~@15]/6", P: "eb3@3 eb2 db3@3 ~ bb2@4 eb2@4",
  Q: "d3@3 d2 c3@3 ~ a2@4 d2@4", R: "e2@4 bb2@3 e2 a2@4 eb2@4", S: "d2 e2 f2 d2", T: "eb2@4 bb2@3 eb2 eb3@3 ~ bb2@4",
  U: "d2@4 a2@3 d2 d3@4 a2@4", V: "eb2@4 bb2@3 eb2 eb3@4 bb2@3 d2", W: "d3@3 ~ db3@3 ~ d3@4 a2@4",
  X: "e2@4 bb2@3 e2 a2@3 ~ e2@4", Y: "a2 eb2 a1 eb2", Z: "d2@4 gb2@3 d2 a2@3 ~ gb2@4", AA: "g1@4 g2@3 g1 gb2@3 ~ g2@4",
  AB: "g1@4 d2@3 g1 c2@3 ~ g2@3 c2", AC: "f2@4 g2@3 f2 a2@4 f2@3 ~", AD: "eb3@4 bb2@3 eb2 eb3@3 ~ bb2@4",
  AE: "d3@3 ~ db3@3 d2 d3@4 a2@3 eb2", AF: "eb3@4 db3@3 ~ bb2@4 eb2@4", AG: "d3@3 ~ db3@3 d2 d3@4 bb2@3 eb2",
  AH: "eb3@3 ~ db3@3 eb2 eb3@4 bb2@3 eb2", AI: "d3@3 ~ c3@3 d2 d3@4 a2@3 d2", AJ: "eb2@4 f2@3 eb2 g2@3 ~ eb2@4",
  AK: "d2@4 e2@3 d2 f2@4 d2@4", AL: "eb2@4 bb2@3 eb2 g2@3 ~ eb2@4", AM: "d2@4 a2@3 d2 f2@4 d2@4",
  AN: "e2@4 bb2@3 e2 a2@3 ~ db3@3 a2", AO: "d3@3 d2 db3@3 ~ d3@4 a2@3 d2", AP: "a2@4 g2@3 ~ gb2@3 ~ eb2@4",
  AQ: "d2@4 e2@3 d2 gb2@4 d2@4", AR: "g2@3 d2 a2@4 bb2@3 ~ g2@3 d2", AS: "g2 g1 bb1 db2",
  AT: "c2@4 e2@3 c2 g2@3 ~ gb2@4", AU: "eb2@4 bb2@3 eb2 db3@4 bb2@4", AV: "d2@4 a2@3 d2 c3@4 a2@3 ~",
  AW: "eb2@4 bb2@3 eb2 db3@4 bb2@3 d2", AX: "d3@3 d2 db3@3 d2 d3@4 a2@3 ~", AY: "eb2@4 eb3@3 eb2 db3@4 bb2@4",
  AZ: "d2@4 d3@3 d2 c3@4 d2@4", BA: "[eb3@3 ~ db3@3 eb2 eb3@4 eb2@2 ~ d3@4 d2 db3@3 ~ d3@4 d2@4]/2",
  BB: "[e2@4 bb2@3 e2 a2@3 ~ e2@2 ~ d2@5 e2@4 f2@4 d2@4]/2",
  BC: "[eb3@3 eb2 db3@3 ~ eb3@4 eb2@2 ~ d3@4 d2 db3@3 ~ d3@4 d2@4]/2", BD: "d2@4 gb2@3 d2 a2@4 gb2@3 g1",
  BE: "g2@3 ~ gb2@3 ~ g2@4 g1@3 ~", BF: "g2 db2 g1 db2", BG: "e2@4 bb2@3 e2 a2@3 e2@4 ~",
  BH: "[e2@8 a2@6 d2@15 ~@2 e2@26 ~@2 e2 ~@3 eb2@26 ~@2 eb2@2 ~@2 d2@17]/7",
  BI: "[~@11 d2@2 ~@2 g2@26 ~@2 g2@2 ~@2 g2@17]/4", BJ: "[~@11 g2@2 ~@2 gb2@17]/2", BK: "[~@12 gb2@2 ~ f2@113]/8",
})).s("gm_acoustic_bass").gain(0.4)

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

// drums · rim
const rim = s("rim").struct("<~@92 A B@5 C D B D B E ~@84>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@6 x ~@4", D: "~@3 x ~@7 x ~@4", E: "~ x ~@2",
})).gain(0.34)

// drums · snare
const snare = s("sd").struct("<~@88 A B C D ~@17 A E F G H@2 I@2 H J K ~@68>".pickRestart({
  A: "~@3 x", B: "~@2 x ~@2 x ~@2", C: "x ~@2 x ~@2 x ~", D: "~@3 x ~@5 x ~@6", E: "~@2 x ~@4 x", F: "x ~@11 x!2 ~@2",
  G: "x ~@2 x", H: "~ x ~ x", I: "~@3 x ~@8 x ~@3", J: "~ x ~@2", K: "~@6 x ~@2 x ~@6",
})).gain(0.34)

// drums · clap
const clap = s("cp").struct("<~@91 A ~@11 B ~@7 A ~@7 C ~@39 D ~@28>".pickRestart({
  A: "~@7 x", B: "~@8 x!2 ~@2 x ~@3", C: "~@5 x ~@2 x ~@3 x ~@2 x", D: "~@5 x ~@2",
})).gain(0.39)

// drums · low tom
const low_tom = s("lt").struct("<A@24 ~@7 A@9 ~@14 B C ~@35 D ~@11 D ~@15 E ~@16 A@16 ~@7 A@9 ~@20>".pickRestart({
  A: "~@3 x", B: "~@8 x!8", C: "x!14 ~@2", D: "~@15 x", E: "~@13 x ~@2",
})).gain(0.3)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@24 A@8 ~@8 A@12 ~@4 B@2 A C A@2 C A@36 C A D A@13 C A@6 E C@5 A@2 C@2 A@2 E A ~@16 A@5 C A C ~@8 A@4 C@2 A@2 D A@3
  ~@8
>`.pickRestart({
  A: "~ x ~ x", B: "~@5 x ~@7 x ~@2", C: "~@3 x ~@7 x ~@4", D: "~@3 x ~@8 x ~@3", E: "~@4 x ~@6 x ~@4",
})).gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<A@24 ~@8 A@6 B A ~@14 C ~@36 D ~@11 E ~@15 F ~@16 A@16 ~@8 A@8 ~@20>".pickRestart({
  A: "~@3 x ~@4", B: "~@7 x ~@8", C: "~ x!7 ~@8", D: "~@3 x", E: "~@13 x ~@2", F: "~@5 x ~@2",
})).gain(0.34)

// drums · crash
const crash = s("cr").struct(`<
  ~@24 A ~@14 B ~ C ~ C ~ C ~ C ~ C ~ C ~@4 A ~@14 D ~@8 A ~@6 E ~@4 A ~@11 A ~@13 F ~ G ~@2 H G ~@2 E G ~@2 I G ~@3 A
  ~@15 A ~@14 B ~ C ~ C ~ E ~ C ~ C ~ J ~@8
>`.pickRestart({
  A: "x", B: "~@5 x ~ x", C: "~@7 x", D: "~@11 x ~@3 x", E: "~@11 x ~@2 x ~", F: "~@15 x", G: "x ~@6 x",
  H: "~@2 x ~@2 x ~ x ~@8", I: "~@11 x ~ x ~@2", J: "~@6 x!2",
})).gain(0.39)

// drums · ride
const ride = s("rd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B C D E F C E G H A B A B A B A I E@2 C E J E C E C E K E ~@4 L E F M E
  F N F O F E P@2 F Q R S E F@2 E F Q@2 C E@5 F T C Q C E C E@2 F E P U V G@2 H W J C E F E Q C D E@3 X E Y Z ~ S Q AA
  AB AC AD AA AE S AF AA AE AG AF Q AH AI B A B A B A B A B A B A B A B C D F Q F N Q AA A B A B A B A I C AJ N C AK AL
  C E AM E J R ~@8
>`.pickRestart({
  A: "x ~ x ~ x!2 ~ x", B: "~ x!2 ~ x!2 ~ x", C: "~ x!3", D: "x ~@3 x ~@2 x!2 ~@3 x ~@3", E: "x!4",
  F: "x ~@3 x ~@3 x ~@3 x ~@2 x", G: "x ~ x!2 ~@4 x ~ x ~ x ~@3", H: "x!3 ~ x!3 ~", I: "~ x!2 ~ x ~@3",
  J: "~@4 x ~@3 x ~@3 x ~@2 x", K: "~@3 x ~@4 x ~@3 x ~@3", L: "~@5 x ~@2 x ~@3 x ~@3", M: "x ~@2 x ~@4 x ~@3 x ~@3",
  N: "~@3 x ~@3 x ~@3 x ~@3 x", O: "~@3 x ~@3 x ~@3 x ~@4", P: "x ~ x ~ x!3 ~", Q: "x ~@3 x ~@2 x!2 ~@3 x ~@2 x",
  R: "x ~@3 x ~@2 x!2 ~@7", S: "~@4 x ~@2 x!2 ~@3 x ~@3", T: "x!3 ~", U: "x ~ x!2 ~@4 x ~ x!2 ~@3 x",
  V: "~@2 x!2 ~@3 x ~@2 x!2 ~@4", W: "x!3 ~ x ~@3", X: "x ~@2 x ~@3 x ~@4 x ~@2 x", Y: "x ~@3 x ~@2 x ~ x ~@2 x ~@2 x",
  Z: "~@2 x ~ x ~@2 x ~ x ~@2 x ~@3", AA: "x ~@3 x ~ x ~ x ~@2 x ~@2 x ~", AB: "x ~@10 x ~@4",
  AC: "~@3 x ~@2 x ~ x ~@2 x ~@4", AD: "~@3 x ~@2 x!2 ~@3 x ~@2 x ~", AE: "x ~@2 x ~@2 x ~ x ~@7", AF: "~@2 x!3 ~ x!2",
  AG: "~@2 x!3 ~ x ~", AH: "x ~ x!3 ~ x!2", AI: "~@2 x ~ x!2 ~ x", AJ: "x ~ x!3 ~ x ~", AK: "~@4 x ~@2 x ~@3 x ~@3 x",
  AL: "~@3 x ~@3 x ~@8", AM: "~@3 x ~@3 x ~@4 x ~ x ~",
})).gain(0.34)

stack(piano, bass, kick, rim, snare, clap, low_tom, pedal_hat, mid_tom, crash, ride)

More by Gillespie Dizzy