Strudelify
Virtual Insanity cover art

1996 · Travelling Without Moving

Virtual Insanity

Jamiroquai

KeyE♭ minorTempo60 bpm
0:00/0:00
// Virtual Insanity — Jamiroquai
// 60 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 60 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/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
const piano = note("<A B@5 C@8 D@7 E F G H I J K L M N O@5 P@2 Q@8 R@4 S T@2 U V W X Y Z@2>".pickRestart({
  A: "~@16 bb4@5 ~@5 b4@5 ~, ~@11 [eb3,db4,eb4,gb4]@10 [f3,eb4,f4,ab4]@10 ~", // Ebm7 Fm7
  B: "[[eb4,e4,ab4]@5 [db4,gb4,bb4]@5 ~@5 b3@5 ~ [c2,c3,gb3,bb3,c4,eb4]@10 ~ [b2,gb3]@10 ~ [d4,gb4]@40 bb2 ~@2 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,c4,eb4,gb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db3 ~ [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~@2 [bb3,b3,eb4,gb4]@7 gb2 ~@2 [ab3,bb3,d4,gb4]@8 bb2 eb2@2, gb3@10 [b1,b2,db4,eb4,gb4]@11 ~@10 [b1,bb3,eb4,gb4]@11 [bb1,bb2,ab3,bb3]@42 eb2@9 ~@2 ab2@9 ~@12 gb2@9 ~@35, ~@95 ab1@6 ~@4 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 [bb1,bb2]@10 ~@3]/5", // Emaj7 Gb Cm7b5 B5 D Ebm7 Ab7 Fm7b5 …
  C: "[[bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,c4,eb4,gb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db3 ~ [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~ [bb3,b3,eb4,gb4]@8 b2 ~@2 [ab3,bb3,d4,gb4]@8 bb2 ~@2 [bb3,db4,eb4,gb4]@7 bb2 ~@2 [db4,eb4,gb4,bb4]@8 eb2 ~@2 [c4,eb4,gb4,bb4]@8 ab2 ~ [b3,eb4,f4,ab4]@8 db3 ~@2 [bb3,db4,f4,gb4]@8 g2 ~ [gb3,bb3,c4,eb4]@8 gb2 ~@2 [gb3,bb3,b3,eb4]@8 b2 ~ [ab3,bb3,d4,gb4]@8 bb2 ~@5 gb1@2 gb2 g1@2 g2 ~ [gb3,bb3,c4,eb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db2 ~@2 [bb3,db4,f4,gb4]@7 g2 ~@2 [bb3,c4,eb4,gb4]@8 c2 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~ [ab3,bb3,d4,gb4]@8 bb2 ~@2 [bb3,db4,eb4,gb4]@8 bb2 ~ [bb3,db4,eb4,gb4]@8 eb2 ~@2 [gb3,bb3,c4,eb4]@3, ~@8 ab2@9 ~@13 gb2@9 ~@33 [eb2,eb3]@9 ~ eb2@9 ~@2 ab2@9 ~@12 gb2@9 ~@33 [eb2,eb3]@5 ~@6 ab2@9 ~@54 [eb2,eb3]@9 ~@2 eb2@9 ~ [ab1,ab2]@5, ~@8 ab1@6 ~@5 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 [bb1,bb2]@10 ~@22 ab1@6 ~@4 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 ~ [bb1,bb2]@10 ~@2 [bb3,db4,eb4,gb4]@8 ~ ab1@6 ~@4 [db2,db3]@9 ~@2 [gb1,gb2]@9 ~ [c2,c3]@9 ~@2 [b1,b2]@9 ~ [bb1,bb2]@9 ~@13 eb3@6 ~@9]/8", // Ebm7 Ab7 Fm7b5 Gbmaj7 Cm7b5 Bmaj7 Daug Ebm7 …
  D: "[~@5 ab2 ~ [b3,eb4,f4,ab4]@8 db2 ~@2 [bb3,db4,f4,gb4]@8 g2 ~ [bb3,c4,eb4,gb4]@8 gb2 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~@2 [ab3,bb3,d4,gb4]@3 ~@2 [ab3,bb3,d4,gb4]@3 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2 ~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 [bb1,ab3,bb3,d4,f4]@5 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2 ~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4] ~@3 gb4@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@7 b1 d2@2 ~ f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@3 [b3,eb4,gb4]@5 b1 ~ [bb3,d4,f4,ab4]@7 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@4 bb1@2, ~@6 [db2,db3]@9 ~ [gb1,gb2]@9 ~@2 [c2,c3]@9 ~ [b1,b2]@9 ~@2 [bb1,bb2]@5 [bb1,bb2]@5 b1@8 ~@5 [ab3,bb3,d4,gb4]@7 ~ eb2@9 ~@2 ab1@5 ~@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@8 ~@2 ab1@4 ~ bb1@6 b1@8 ~@13 eb2@9 ~ ab1@5 ~@6 b1@9 ~@2 bb1@9 ~ eb2@9 ~@2 ab1@6 ~, ~@134 gb4@2 ~ [bb3,d4,ab4]@3 ~@15 [ab3,bb3,d4,gb4]@7 ~@28 bb4 ~@33]/7", // Fm7b5 Gbmaj7 Cm7b5 Bmaj7 Daug Bmaj7 Ebm7 Abm7 …
  E: "[bb3,d4,ab4]@3 ~@2 [db4,eb4,gb4,bb4]@8 eb2 ~ [c4,eb4,gb4,bb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@6, ~@3 eb2@9 ~@2 ab2@9 ~@9, ~@7 ab1@3 ~@2 [db2,db3]@4", // Bb7 Ebm7 Cm7b5 Fm7b5 Db
  F: "~@2 db3 ~@2 [bb3,db4,f4,gb4]@7 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~@2 [bb3,b3,eb4,gb4]@6, ~@3 gb2@9 ~ [c2,c3]@10 ~ [b1,b2]@8", // Gbmaj7 Cm7b5 Bmaj7 C B
  G: "~@2 b2 ~ [ab3,bb3,d4,gb4]@8 bb2 ~@5 gb1@2 gb2 g1@2 g2 ~ [gb3,bb3,c4,eb4]@7, ~@2 [bb1,bb2]@10 ~ [eb2,eb3]@5 ~@6 [ab1,ab2]@8, ~@15 [bb3,db4,eb4,gb4]@8 ~@9", // Daug Cm7b5 Bb Eb Ab Ebm7
  H: "~ ab2 ~@2 [eb4,f4,ab4,bb4]@8 db2 ~ [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@7, ~@2 [db2,db3]@9 ~@2 [gb1,gb2]@9 ~ [c2,c3]@9", // Ebsus4 Gbmaj7 Cm7b5 Db Gb C
  I: "~ c2 ~@2 [bb3,b3,eb4,gb4]@7 b1 ~@2 [ab3,bb3,d4,gb4]@8 bb2 ~@2 [bb3,db4,eb4,gb4]@7, ~@2 [b1,b2]@9 ~ [bb1,bb2]@9 ~@2 [eb2,eb3]@9", // Bmaj7 Daug Ebm7 B Bb Eb
  J: "~ bb2 ~ [gb3,bb3,c4,eb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db2 ~ [bb3,db4,f4,gb4]@8, ~ ab2@9 ~@22, ~ ab1@6 ~@5 [db2,db3]@9 ~@2 [gb1,gb2]@9", // Cm7b5 Fm7b5 Gbmaj7 Db Gb
  K: "g2 ~@2 [bb3,c4,eb4,gb4]@8 c2 ~ [bb3,b3,eb4,gb4]@8 b1 ~@5 db2@2 db3 d2@2, ~ [c2,c3]@9 ~@2 [b1,b2]@9 ~ [bb1,bb2]@5 ~@5, ~@3 [ab3,bb3,d4,gb4]", // Cm7b5 Bmaj7 C B Bb Daug
  L: "bb2 ~ [bb3,db4,eb4,gb4]@3 ~ gb1@2 gb2 ~ g2 ~@2 [gb3,bb3,c4,eb4]@8 ab2 ~@2 [b3,eb4,ab4]@7 db2, ~ eb2@2 ~@6 g1@2 ab2@9 ~@3 f4@8 ~, ~@11 ab1@6 ~@5 [db2,db3]@9 ~", // Ebm7 Cm7b5 Abm Db
  M: "~@2 [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@8 c2 ~ [bb3,b3,eb4,gb4]@8 b1, [gb1,gb2]@9 ~@2 [c2,c3]@9 ~ [b1,b2]@9 ~@2", // Gbmaj7 Cm7b5 Bmaj7 Gb C B
  N: "~@2 [ab3,bb3,d4,gb4]@8 bb2 ~ [bb3,b3,eb4,gb4]@8 b1 d2@2 ~ f2@2 d2@3 ~@3, [bb1,bb2]@9 ~@2 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2", // Daug Bmaj7 Bb Daug
  O: "[~ [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 [bb1,ab3,bb3,d4,f4]@5 ~@3 [bb3,b3,eb4,gb4]@7 b1 d2@2 ~ f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4] ~@3 gb4@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~@2 f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@3 [b3,eb4,gb4,bb4]@5 b1 ~ [bb3,d4,f4,ab4]@7 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 ~@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2, eb2@9 ~ ab1@5 ~@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@8 ~@2 ab1@4 ~ bb1@6 b1@8 ~@3 d2@3 ~@7 eb2@9 ~@2 ab1@5 ~@5 b1@9 ~@2 bb1@9 ~ eb2@9 ~@2 ab1@5 bb1@5 b1@8 ~@5, ~@54 gb4@2 ~ [bb3,d4,ab4]@3 ~@15 [ab3,bb3,d4,gb4]@7 ~@78]/5", // Ebm7 Abm7 Bb7 Bmaj7 Ebm7 Abm Bb7 Bmaj7 …
  P: "[~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 [bb1,ab3,bb3,d4,f4]@5 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2 ~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ab1@2 [ab3,b3,eb4,gb4], [ab3,bb3,d4,gb4]@7 ~ eb2@9 ~@2 ab1@5 ~@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@8 ~@5]/2", // Ebm7 Abm7 Bb7 Bmaj7 Ebm7 Abm7 Daug
  Q: "[~@2 [bb3,d4,gb4,ab4]@3 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@7 b1 d2@2 ~ f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@3 [b3,eb4,gb4,bb4]@5 b1 ~ [bb3,d4,f4,ab4]@7 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@4 ~@2 [bb3,d4,ab4]@3 ~@2 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,c4,eb4,gb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db3 ~@2 [bb3,db4,f4,gb4]@7 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~@2 [bb3,b3,eb4,gb4]@8 gb2 ~@5 db2@2 d2@2 bb1 ~@2 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,c4,eb4,gb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db3 ~ [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~ [bb3,b3,eb4,gb4]@8 gb2 ~@5 bb1 bb1@5 ~@2 [bb3,b3,eb4,gb4]@8 d2@2 ~ f2@2 ~, ~@2 bb1@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@9 ~ ab1@5 ~@6 b1@9 ~ bb1@9 ~@2 eb2@9 ~@2 ab1@5 bb1@5 eb2@9 ~@2 ab2@9 ~@12 gb2@9 ~@24 [ab3,bb3,d4,gb4]@8 ~@12 ab1@6 ~@4 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 [bb1,bb2]@5 ~@6 b1@8 ~@2 b1 ~@5, ~@103 ab1@6 ~@4 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 [bb1,bb2]@5 ~@6 eb2@9 ~@2 ab2@9 ~@12 gb2@9 ~@24 [ab3,bb3,d4,gb4]@8 ~@13 [ab3,bb3,d4,gb4]@4]/8", // Bbaug Bb7 Bmaj7 Ebm7 Abm7 Bb7 Bmaj7 Bb7 …
  R: "[d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~@2 f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4] ~@3 gb4@2 ~ [bb3,d4,ab4]@2 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2 f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@4 [b3,eb4,gb4,bb4]@4 b1 ~@2 [bb3,d4,f4,ab4]@5, ~@5 eb2@9 ~ ab1@5 ~@6 b1@8 ~@3 d2@3 ~@7 eb2@8 ~@3 ab1@4 bb1@6 b1@8 ~@13 eb2@9 ~@2 ab1@5 ~@5 b1@9 ~@2 bb1@7, ~@38 [ab3,bb3,d4,gb4]@7 ~@14 gb4@2 ~ [bb3,d4,ab4]@3 ~@16 [ab3,bb3,d4,gb4]@7 ~@40]/4", // Ebm7 Abm7 Bb7 Bmaj7 Ebm7 Abm Bb7 Bmaj7 …
  S: "~@5 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 ~@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@6, ~@4 eb2@9 ~ ab1@5 bb1@5 ~ b1@7", // Ebm7 Abm7 Bb7 Bmaj7
  T: "[~@2 b1 d2@2 ~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [bb3,b3,eb4,gb4]@7 b1 d2@2 ~ f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@6, ~@5 [ab3,bb3,d4,gb4]@7 ~@2 eb2@9 ~ ab1@5 ~@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@8]/2", // Ebm7 Abm7 Bb7 Bmaj7 Ebm7 Daug
  U: "~@2 eb2 ~ [ab3,b3,eb4] ~@3 gb4@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~@2 f2@2 ~ d2@3, ~@2 ab1@4 ~ bb1@6 b1@8 ~@3 d2@3 ~@5, ~@4 gb4@2 ~ [bb3,d4,ab4]@3 ~@15 [ab3,bb3,d4,gb4]@7", // Abm Bb7 Bmaj7 Bb7 Daug
  V: "~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@3 [b3,eb4,gb4,bb4]@4, ~@2 eb2@9 ~@2 ab1@5 ~@5 b1@9", // Ebm7 Abm7 Bb7 Bmaj7
  W: "~ b1 ~@2 [bb3,d4,f4,ab4]@7 ~@3 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 ~@2 [bb3,d4,ab4]@2, ~@2 bb1@9 ~ eb2@9 ~@2 ab1@5 bb1@4", // Bb7 Ebm7 Abm7 Bb7
  X: "~@3 [bb3,b3,eb4,gb4]@8 a2 ~@2 [ab3,d4,f4,ab4]@9 ~@5 eb4@4, ~ b1@8 ~@3 [d2,d3]@11 [eb3,bb3,f4,gb4,bb4]@9", // Bmaj7 Ddim D Ebm
  Y: "~@6 b4@5 ~ [gb3,eb4]@5 [gb2,db4,bb4]@5 ~@6 b3@4, ~ [f3,ab3,db4,f4,ab4]@10 ~ [e4,ab4]@10 [b2,db4,eb4,gb4]@10", // Ebm Gb Db E B
  Z: "[~@3 [c2,gb3,bb3,c4]@12 [b1,gb3,bb3,b3]@12 ~@22 [d6,d7]@9 ~@6, ~@3 eb4@25 ~ [bb1,ab3]@27 ~@8, ~@30 bb3@25 ~@9, ~@31 d4@10 ~ d4@13 ~@9, ~@32 gb4@23 ~@9]/2", // Cm7b5 Bmaj7 D Bb7
})).s("gm_piano").gain(0.35)

// bass · acoustic bass · "BAS"
const bass = note(`<
  ~@5 A@6 B@3 C@2 D E F G H I J K L M@2 N O P Q R S T U V W X Y Z@2 ~@3 AA AB AC AD AE AF AG AH@2 AI AJ AK AL ~@3
>`.pickRestart({
  A: "[~@29 bb1 eb2@9 ~ ab1@6 ~@4 ab2 db3@9 ~ db3 gb2@9 g2 c3@9 ~ gb2 b1@9 b2 bb2@9 ~ bb2 eb2@9 bb1 eb2@9 ~ eb2 ab1@6 ~@4 db3@9 ~ db3 gb2@9 ~ c3@9 ~ gb2 b1@10 b2 bb2@9 bb2 eb2@4, ~@40 eb2 ~@94 ab2 ~@20 g2 ~@35]/6",
  B: "[~@7 ab1@6 ~@3 ab1 db2@9 ~ db2 gb1@8 ~ g1 c2@8 ~@2 c2 b1@9 ~ bb1@8 ~@2 bb1 eb2@9 ~ bb1 eb2@9 eb2 ab1@5, ~@59 b1 ~@36]/3",
  C: "[~@5 ab1 db2@9 db2 gb1@8 ~@2 g2 c2@9 gb2 b1@9 ~ b1 bb1@5 bb1 ~ bb1 bb1@2 b1 ~ b1 ~@3]/2",
  D: "~@4 b1 d2 ~ d2 f2!2 d2 ~@4 eb2@2 eb2!2 ~@2 gb1@2 g1@2 g1 ab1@2 ab1!2 ~@2, ~@15 bb1 ~@7 gb1 ~@8",
  E: "~ bb1@3 ~ b1!3 ~@6 b1 d2 ~ d2 f2@2 d2 ~@4 d2 eb2!3 ~@2 gb1",
  F: "~ gb1 g1!2 ab1 ~ ab1 ab1@2 ~ bb1 bb1@3 ~ b1 ~ b1 ~@6 b1 d2 ~ d2 f2 ~ f2 d2",
  G: "~@3 bb1 eb2@2 eb2!2 ~ gb1@2 gb1 g1@2 ab1@2 ab1!2 ~@3 bb1@3 ~ b1@2 b1!2 ~@3, ~@14 g1 ~@17",
  H: "~@3 b1 d2!2 f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~ gb1 ~ gb1 g1 ~ g1 ab1!2 ab1@2 ~ bb1 ~",
  I: "bb1@3 eb1 ~ eb1 eb2 ~ gb1@2 gb2 g1@2 g2 ~ ab2 ~@7 ab2 db2@2 db3 ~@4 e2, ~@7 ab1 ~@7 e1",
  J: "f1@2 f2 gb1@2 gb2 ~@6 gb1 c2@2 c3 ~@7 c2 b1@2 b2 ~@5",
  K: "~@2 bb1@2 bb2 ~@2 bb1 db2@2 db3 ~ db2 eb2 ~ eb2 eb3 ~ gb1@2 gb2 g1@2 g2 ~ ab2 ~@6, ~@2 b1 ~@21 ab1@2 ~@6",
  L: "~ ab1 db2@2 db3 ~@2 e1@2 e2 f1@2 f2 ~ gb2 ~@7 g1 c2@2 c3 ~@6, ~@13 gb1@2 ~@17",
  M: "[~ c2 b1@2 b2 ~@6 b1 bb1@2 bb2 ~@2 bb1 ~ db3 ~@2 db2 eb2@2 eb2 eb3 ~ gb1@2 gb2 g1@2 ab1@2 ab2 ~@7 ab1 db2@2 db3 ~@2 e1@2 e2 f1@2 f2 ~ gb2 ~@7, ~@18 db2@2 ~@13 g2 ~@21 gb1@2 ~@7]/2",
  N: "g1 c2@2 c3 ~@7 c2 ~ b2 ~@7 b1 bb1@2 bb2 ~@2 db2@2 db3 ~@2, ~@12 b1@2 ~@13 bb1 ~@4",
  O: "db2 eb2!2 eb3 ~@2 gb1@2 gb2 ~ g2 ab1@2 ab2 ~@7 ab1 db2@2 db3 ~@2 e1@2 e2 ~ f2, ~@9 g1@2 ~@19 f1@2",
  P: "gb1@2 gb2 ~@7 g1 c2@2 c3 ~@7 b1@2 b2 ~@7 b1, ~@21 c2 ~@10",
  Q: "bb1@2 bb2 ~ bb1 bb1@2 bb2@3 e2 b1!2 ~@7 b1 d2 ~ d2 f2 ~ [d2,f2] ~@4 bb1", // Dm
  R: "eb2!3 ~@2 gb1@2 gb1 g1!2 ab1@2 ab1!2 ~@3 bb1@3 ~ b1@2 b1 ~@6 b1 d2",
  S: "~ d2 f2@2 d2 ~@4 d2 eb2 ~ eb2 ~@2 gb1 ~ gb1 g1 ~ [g1,ab1] ~ ab1 ab1@2 ~ bb1 bb1@3 ~ b1", // Abmaj7
  T: "~ b1 ~@7 b1 d2!2 f2 ~ f2 d2 ~@3 bb1 eb2@2 eb2!2 ~ gb1@2 gb1 g1@2 g1 ab1",
  U: "ab1!2 ~@4 bb1@3 b1@2 b1!2 ~@6 b1 d2!2 f2@2 d2 ~@4 d2 eb2 ~",
  V: "eb2!2 ~@2 gb1!2 g1 ~ g1 ab1 ~ ab1@2 ~ bb1 ~ bb1@3 b1 ~ b1 ~@7 b1 d2 ~",
  W: "d2 f2!2 d2 ~@4 eb2@2 eb2!2 ~@2 gb1!2 g1@2 g1 ab1@2 ab1!2 ~@3 bb1@3 ~ b1!2, ~@8 bb1 ~@23",
  X: "b1 ~@6 b1 d2 ~ d2 ~ d2 ~@5 d2 eb2!3 ~@2 gb1 ~ gb1 g1!2 ab1 ~ ab1, ~@11 f2@2 ~@19",
  Y: "ab1@2 bb1 ~ bb1@3 ~ b1 ~ b1 ~@6 b1 d2 ~ d2 f2 ~ f2 d2 ~@3 bb1 eb2@2 eb2",
  Z: "[~@2 gb1@2 gb1 g1@2 ab1@2 ab1!2 ~@3 bb1@3 ~ b1@2 b1!2 ~@6 [b1,d2] ~ d2 f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~ gb1 ~ gb1 g1 ~ g1 ab1!2 ab1@2 ~ bb1 ~ bb1@3 ~@4, ~@7 g1 ~@56]/2", // Bm
  AA: "~@21 ab3 ~ [eb3,gb3] db3@3 gb3 eb3 bb2@2 ~, ~@29 db3 ~@2", // Ebm
  AB: "~@8 eb3 db3 bb2 ~ bb2 ab2@2 gb2 b1 ~ b1 ~@7 [b1,d2] ~ d2 f2 ~ f2, ~@11 db3@2 ~@19", // Bm
  AC: "d2 ~@3 bb1 eb2@2 eb2!2 ~ gb1@2 gb1 g1@2 ab1@2 ab1!2 ~@4 bb1@3 b1@2 b1!2 ~@2, ~@15 g1 ~@16",
  AD: "~@4 b1 d2!2 f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~ gb1 ~ gb1 g1 ~ g1 ab1!2 ab1@2 ~ bb1",
  AE: "~ bb1@3 b1 ~ b1 ~@7 b1 d2 ~ [d2,f2] ~ f2 d2 ~@3 bb1 eb2@2 eb2!2 ~@2 gb1", // Dm
  AF: "gb1 g1@2 g1 ab1@2 ab1!2 ~@3 bb1@3 b1@2 b1!2 ~@6 b1 d2 ~ d2 ~ d2 ~@2, ~@14 f2 ~",
  AG: "~@3 d2 eb2!3 ~@2 gb1 ~ [gb1,g1] ~ g1 ab1 ~ ab1 ab1@2 bb1 ~ bb1@3 ~ b1!2 ~@5", // Gmaj7
  AH: "[~@2 b1 d2 ~ d2 f2 ~ [d2,f2] ~@4 bb1 eb2!3 ~@2 gb1@2 gb1 g1!2 ab1@2 ab1!2 ~@3 bb1@3 ~ b1@2 b1 ~@6 b1 d2 ~ d2 f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~ gb1 ~ gb1]/2", // Dm
  AI: "g1 ~ [g1,ab1] ~ ab1 ab1@2 ~ bb1 ~ bb1@3 b1 ~ b1 ~@7 b1 d2!2 f2 ~ f2 d2 ~@2", // Abmaj7
  AJ: "~ bb1 eb2@2 eb2!2 ~ gb1@2 gb1 g1@2 g1 ab1!3 ~@4 bb1@3 b1@2 b1!2 ~@5",
  AK: "~ b1 d2 ~ f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~@2 gb1!2 g1 ~ g1 ab1 ~ ab1 ab1@2 bb1@2 ab1 ~, ~@4 d2 ~@27",
  AL: "~ b1@2 ~@29, bb1 ~@15",
})).s("gm_acoustic_bass").gain(0.59)

// chords · piano
const piano_2 = note("<~@16 A@3 B@3 ~@6 C D E F G H@3 I J@5 ~@3 K L M@4 N@3 O P Q R ~@2>".pickRestart({
  A: "[[gb3,gb4]!2 [eb3,eb4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~ eb4@5 ~ db4@5 [b3,eb4]@5 [d4,f4,ab4]@5 ~@6 [ab3,ab4] ~ [gb3,ab3,gb4,ab4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~@2 [eb4,gb4]@5 [db4,f4]@5 [b3,eb4,gb4]@5 [d4,ab4]@4 ~@7 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7 [f3,f4], ~@5 gb4@5 ~@22]/3", // Gb Eb F D B Ddim Ab Gbsus2 …
  B: "[[f3,f4] [d3,d4] ~@2 eb4@5 db4@5 [b3,eb4]@6 [d4,f4,ab4]@5 [eb4,gb4,bb4]@10 ~@6 d5@5 eb5@5 f5@6 [ab4,b4,gb5]@5 [d5,ab5]@5 ~@29, ~@4 gb4@15 ~@16 [d4,f4,ab4]@11 [gb4,bb4]@10 ~@40]/3", // F D B Ddim Ebm Abm7 Ddim Gb
  C: "~ eb4 f4 ~ gb4 ~ ab4 ~ gb4 f4 ~ eb4 ~ f4 ~ gb4 ab4 ~ gb4 ~ f4 ~ eb4 ~ f4 gb4 ~ ab4 ~ gb4 ~ f4",
  D: "eb4 ~ f4 ~ gb4 ~ ab4 gb4 ~ f4 ~ eb4 ~ f4 gb4 ~ ab4 ~ gb4 ~ f4 eb4 ~ f4 ~ gb4 ~ ab4 gb4 ~ f4 ~",
  E: "[d4,gb4]@10 ~@6 [gb3,gb4] ~ [eb3,gb3,eb4,gb4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~@2", // D Gb Ebm F D
  F: "eb4@5 db4@5 [b3,eb4]@5 [d4,f4,ab4]@5 ~@6 [ab3,ab4] ~ [ab3,ab4] [gb3,gb4] ~@2, gb4@15 ~@17", // B Ddim Ab Gb
  G: "~@5 [f3,f4]!2 [d3,d4] ~@2 [eb4,gb4]@5 [db4,f4]@5 [b3,eb4,gb4]@5 ~ [d4,ab4]@4 ~@2", // F D Ebm Db B Ddim
  H: "[~@4 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7 [f3,f4]!2 [d3,d4] ~@2 eb4@5 db4@5 ~ [b3,eb4]@5 [d4,f4,ab4]@5 [eb4,gb4,bb4]@10 ~@6 d5@5 eb5@5 f5@6 [ab4,b4,gb5]@5 [d5,ab5]@5 ~@6 [gb3,gb4]!2 [eb3,eb4] ~@4, ~@20 gb4@15 ~@17 [d4,f4,ab4]@10 [gb4,bb4]@10 ~@24]/3", // Gb Eb F D B Ddim Ebm Abm7 …
  I: "~@3 [f3,f4] ~ [f3,f4] [d3,d4] ~ eb4@5 ~ db4@5 [b3,eb4]@5 [d4,f4,ab4]@5 ~@3, ~@8 gb4@15 ~@9", // F D B Ddim
  J: "[~@3 [ab3,ab4] ~ [gb3,ab3,gb4,ab4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~@2 [eb4,gb4]@5 [db4,f4]@5 [b3,eb4,gb4]@5 [d4,ab4]@4 ~@7 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7 [f3,f4]!2 [d3,d4] ~@2 eb4@5 db4@5 [b3,eb4]@6 [d4,f4,ab4]@5 [eb4,gb4,bb4]@10 ~@6 d5@5 eb5@5 f5@6 gb5@2 f5@3 eb5 ~ gb5@2 ~ bb5@21 ~@15, ~@61 gb4@15 ~@16 [d4,f4,ab4]@11 [gb4,bb4]@10 ~ [ab4,b4]@5 ~ f5@2 ~ ab5@2 ~@35]/5", // Ab Gbsus2 F D Ebm Db B Ddim …
  K: "~@21 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7", // Gb Eb
  L: "[f3,f4]!2 [d3,d4] ~@2 eb4@5 db4@5 [b3,eb4]@6 [d4,f4,ab4]@5 ~@5 [ab3,ab4], ~@5 gb4@15 ~@12", // F D B Ddim Ab
  M: "[~ [ab3,ab4] [gb3,gb4] ~@7 [f3,f4] ~ [d3,f3,d4,f4] ~@2 [eb4,gb4]@5 [db4,f4]@5 ~ [b3,eb4,gb4]@5 [d4,ab4]@5 ~@5 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~ eb4@5 ~ db4@5 [b3,eb4]@5 [d4,f4,ab4]@5 [eb4,gb4,bb4]@10 ~@6 d5@5 eb5@5 ~ f5@5 [ab4,b4,gb5]@5 [d5,ab5]@5 ~ [gb4,gb5]@2 [eb4,eb5]@2 ~@3, ~@57 gb4@15 ~@17 [d4,f4,ab4]@10 [gb4,bb4]@10 ~@19]/4", // Ab Gb F Dm Ebm Db B Ddim …
  N: "[~@3 [f4,f5]@2 ~ [d4,d5]@2 ~@6 eb5@5 db5@5 [b4,eb5]@5 [bb4,f5]@5 ~ [gb4,gb5]@2 eb4@2 ~ [ab4,ab5]@3 [gb4,gb5]@2 ~@6 [f4,f5]!2 [d4,d5] ~@2 [eb4,eb5]@5 [f4,f5]@5 b4@2 ab4 ~ bb4 ~ b4 d5 ~ f5 ~ [gb4,gb5]@3 [eb4,eb5]@2 ~@6 [f4,f5]@2 [d4,d5]@2 ~@4, ~@37 eb5 ~@18 bb4@10 gb5 ~@29]/3", // F D B Bb5 Gb Ab Gb F …
  O: "~@2 eb5@5 db5@6 [b4,eb5]@5 [bb4,f5]@5 [gb4,gb5]@5 [eb4,eb5]@4", // B Bb5 Gb Eb
  P: "~@2 [f4,f5]@5 [d4,d5]@5 [eb4,eb5]@5 ~ [f4,f5]@5 [gb4,gb5] ~ [ab3,ab4] [bb3,bb4] ~ [b3,b4] ~ [d4,d5] ~", // F D Eb F Gb Ab Bb B …
  Q: "[e4,f4,f5] [eb4,gb5]@11 [b3,ab4,f5]@10 [bb3,eb4,gb4,eb5]@10", // Fmaj7 Ebm Fdim Ebm
  R: "~ [ab3,eb4,ab4,db5]@11 [e4,db5,b5]@5 [gb4,db5,bb5]@5 [eb4,db5,gb5]@6 [eb4,b4,eb5]@4, ~@6 gb3@5 b3@5", // Absus4 Dbm7 Gb Ebm7 Abm
})).s("gm_piano").gain(0.28).pan(0.3)

// chords · piano · soft notes
const piano_soft = note("<~@18 A ~ B@2 ~@10 C ~@2 D ~@2 E ~@8 F@2 ~ G ~@5 H ~ I@2>".pickRestart({
  A: "~@9 f4@4 ~@19", B: "[~@30 bb4@5 ~@29]/2", C: "~@13 f4@2 ~", D: "~@14 bb4@5 ~@13", E: "~ f4@2 ~@13",
  F: "[~@31 f4@4 ~@29]/2", G: "~@19 bb4@5 ~@8", H: "~ bb4@11 ~@20",
  I: "[~@2 [c3,c4,eb4,gb4,bb4]@13 [b2,b3,eb4,gb4,bb4]@13 [bb2,ab3,bb3,d4,gb4,bb4]@34 ~@2, ~ gb3@13 ~@18]/2", // Cm7b5 Bmaj7 Bbaug
})).s("gm_piano").gain(0.16).pan(0.3)

// other · lead 2 sawtooth · "SAWWAVE"
const lead_2_sawtooth = note("<~@15 A B C@2 D E ~@9 F G@4 H I@2 J@2 K ~@4 L M N O P Q R S T U V ~@4>".pickRestart({
  A: "~@26 f4@2 db4@3 ~, ~@26 gb4 ~@5", B: "~@4 eb4 d4@2 b3@2 ~@6 f4@2 db4@2 ~@2 db4 ~@3 db4 b3@5 ~, ~@15 gb4 ~@16",
  C: "[~@4 gb4 ~ db4@3 ~@5 eb4 d4@2 b3@3 ~@5 gb4 ~ db4@2 ~ db4 db4@2 ~@2 db4 b3@4 ~@6 gb4 f4@2 db4@3 ~@4 eb4 d4@2 b3@2 ~@3, ~@5 f4@2 ~@19 f4@2 ~@36]/2",
  D: "~@3 gb4 f4@2 db4@2 ~ db4 ~@4 b3@5 ~@5 gb4 f4@2 db4@3 ~@2, ~@14 db4 ~@17",
  E: "~@3 eb4 ~ b3@3 ~@5 gb4 f4@2 db4@2 db4 db4@2 ~@3 db4 b3@4 ~@3, ~@2 d4 ~@13",
  F: "~@10 gb4 ~ db4@2 ~@6 eb4 d4@2 b3@2 ~@6 gb4, ~@11 f4@2 ~@19",
  G: "[~ db4@2 ~@2 db4 ~@3 db4 b3@5 ~@5 gb4 f4@2 db4@3 ~@4 eb4 d4@2 b3@3 ~@5 gb4 f4@2 db4@2 db4 db4@2 ~@3 b3@4 ~@6 gb4 f4@2 db4@2 ~@6 d4@2 b3@2 ~@6 gb4 f4@2 db4@2 ~ db4 ~@4 db4 b3@5 ~@4 gb4 f4@2 db4@3 ~@5 eb4 ~ b3@3 ~@5 gb4 f4@2, f4@2 ~@50 db4 ~@20 eb4 ~@42 d4@2 ~@10]/4",
  H: "db4@2 ~ db4 db4@2 ~@2 db4 b3@4 ~@6 f4@2 db4@3 ~@5 eb4 d4@2",
  I: "[b3@2 ~@6 f4@2 db4@2 ~@2 db4 ~@3 db4 b3@5 ~@5 gb4 ~ db4@3 ~@5 eb4 d4@2 b3@3 ~@5 gb4 ~ db4@2 ~ db4 db4@2 ~@2 db4 b3@3, ~@8 gb4 ~@21 f4@2 ~@19 f4@2 ~@11]/2",
  J: "[~@7 gb4 f4@2 db4@3 ~@4 eb4 d4@2 b3@2 ~@6 gb4 f4@2 db4@2 ~ db4 ~@4 b3@5 ~@5 gb4 f4@2 db4@3 ~@5 d4@2 b3@2, ~@39 db4 ~@20 eb4 ~@3]/2",
  K: "~@6 gb4 f4@2 db4@2 db4 db4@2 ~@3 db4 b3@4 ~@10", L: "~@15 gb4 f4@2 db4@2 ~@6 d4@2 b3@2 ~@2, ~@26 eb4 ~@5",
  M: "~@4 gb4 f4@2 db4@2 ~ db4 ~@4 b3@5 ~@5 gb4 f4@2 db4@3 ~, ~@15 db4 ~@16",
  N: "~@4 eb4 ~ b3@3 ~@5 gb4 f4@2 db4@2 ~ db4 ~@4 db4 b3@4 ~@2, ~@5 d4@2 ~@25",
  O: "~@3 gb4 f4@2 db4@2 ~@6 eb4 d4@2 b3@2 ~@5 gb4 f4@2 db4@2 ~@2 db4",
  P: "~@3 db4 b3@5 ~@5 f4@2 db4@3 ~@5 eb4 d4@2 b3@3 ~@2, ~@14 gb4 ~@17",
  Q: "~@3 gb4 ~ db4@2 ~ db4!2 ~@3 db4 b3@4 ~@8 db4@2 ~@4, ~@4 f4@2 ~@19 f4@2 ~@5",
  R: "~@2 eb4 d4@2 b3@2 ~@6 gb4 ~ db4@2 ~@2 db4 ~@3 db4 b3@5 ~@3, ~@7 f4 ~@8",
  S: "~@2 gb4 f4@2 db4@3 ~@5 d4@2 b3@3 ~@5 gb4 f4@2 db4@2 db4 db4@2 ~, ~@13 eb4 ~@18",
  T: "~@2 b3@4 ~@6 gb4 f4@2 db4@2 ~@6 eb4 ~ b3@2 ~@5, ~@2 db4 ~@21 d4@2 ~@6",
  U: "~ gb4 f4@2 db4@2 ~ db4 ~@4 db4 b3@5 ~@4 gb4 f4@2 db4@3 ~@4",
  V: "~ eb4 d4@2 b3@3 ~@4 gb4 f4@2 db4@2 ~ db4 db4@2 ~@2 db4 b3@4 ~@5",
})).s("gm_lead_2_sawtooth").gain(0.3).pan(0.9)

// chords · trumpet · "TROMPET"
const trumpet = note("<~@21 A B C@2 D@2 E F G ~@30>".pickRestart({
  A: "~@16 [c5,eb5]@2 [gb4,bb4,c5,eb5] ~@13, ~@16 [gb4,bb4] ~@15", B: "~@21 [gb4,bb4,eb5] ~ [gb4,bb4,eb5] ~@8",
  C: "[~@31 [gb4,ab4,c5] ~ [gb4,ab4,c5,eb5] ~@19 [gb4,eb5] [gb4,bb4,eb5] ~@2 gb4 [gb4,ab4,eb5] ~ [gb4,bb4,eb5] ~@3, ~@31 eb5@2 ~@20 ab4@2 ~@9]/2", // Ab7 Ebm Ab7 Ebm
  D: "[~@31 [gb4,eb5]@2 [gb4,bb4] ~@30, ~@31 bb4 ~@32]/2", // Ebm Gb
  E: "~@4 [gb4,bb4,c5,eb5]!2 ~@3 [gb4,ab4] ~ [gb4,bb4,eb5] ~@2 [gb4,ab4] ~ [gb4,bb4,eb5] ~@15, ~@9 eb5@2 ~@3 eb5@2 ~@16", // Cm7b5 Gbsus2 Ebm Gbsus2 Ebm
  F: "~@19 [gb4,bb4] ~ [gb4,bb4,eb5] ~@10, ~@19 eb5@2 ~@11", // Gb Ebm
  G: "~@19 [ab4,eb5]@2 [gb4,bb4,eb5] ~@2 [ab4,eb5]@2 [gb4,bb4,eb5] ~@5, ~@19 gb4 ~@4 gb4 ~@7", // Ab5 Ebm Ab5 Ebm
})).s("gm_trumpet").gain(0.16).pan(0.9)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@2 A@2 ~ B ~@54>".pickRestart({
  A: "[~@5 [bb2,ab3,d4,gb4,bb4]@21 ~@6]/2", B: "~@4 [eb5,eb6]@17 ~@4 eb5@2 ~@5, ~@25 eb6 ~@6",
})).s("gm_string_ensemble_1").gain(0.02).pan(0.7)

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

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

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

More by Jamiroquai