Strudelify
Delilah cover art

Delilah

Tom Jones

KeyE minorTempo186 bpm
0:00/0:00
// Delilah — Tom Jones
// 186 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "bass" named as a bass, played on electric bass finger (its piano patch is not one); ch 3 "guitar" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 4 "strings" named as a string part, played on string ensemble 1 (its piano patch is not one); ch 5 "brass" named as a brass, played on brass section (its piano patch is not one)
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(186/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.

// bass · electric bass finger · "bass"
const bass = note(`<
  ~@3 A B@3 C@3 D@3 E@3 F@3 G H I J@3 K L@2 M N@2 O@2 P Q@3 R@3 S@3 T@3 U@3 V@2 W X Y@2 Z@3 AA@3 AB@3 AC@3 AD@3 AE@3 AF
  AG@2 AH AI@2 AJ@3 AK AL@2 AM@3 AN AO@2 AP@3 AQ AR@2 AS@2 W AT@3 AU@2 AV AW@2 AX AU@2 AV AY@2 AX AH AZ@2 BA@3 K BB@2 BC
  BD@2 BE BF BG BH@3 BI@3 BJ@2 BK BL@3 BM BN@2 BO@2 W BP@3 BQ@3 BR BS BT BU BV BW
>`.pickRestart({
  A: "~@14 d2 ~", B: "[e2@23 ~ e2@23 ~]/3", C: "[e2@21 ~@3 e2@22 ~@2]/3",
  D: "[b1@19 ~ d#2@3 ~ f#2@15 ~ g2@3 ~ f#2@3 ~]/3", E: "[e2@22 ~@2 e2@19 ~ g2 ~ e2 ~]/3",
  F: "[b1@20 d#2@3 ~ f#2@15 ~ g2@4 f#2@3 ~]/3", G: "e2", H: "b2@3 ~ e2@3 ~ d2@8", I: "e2@4 d2@3 ~ e2@3 ~ d2@4",
  J: "[a1@8 c2@3 ~ e2@7 ~ c2@3 ~ a1@11 ~ c2@3 ~ e2@3 ~ c2@3 ~]/3", K: "e2@11 ~ g2@3 ~",
  L: "[e2@3 ~ g2@3 ~ b1@10 ~@2 b1@3 ~ c#2@3 ~ b1@3 ~]/2", M: "e2@11 ~ e2@3 ~",
  N: "[g2@3 ~ e2@3 ~ d2@10 ~@2 d2@3 ~ e2@3 ~ f#2@3 ~]/2", O: "[g2@7 ~ d2@3 ~ g2@6 ~@2 d2@3 ~ g2@7 ~]/2",
  P: "d2@3 ~ g2@7 ~ d2@3 ~", Q: "[a2@11 ~ d2@11 ~ a2@11 ~ d2@11 ~]/3",
  R: "[a2@12 d2@11 ~ a2@11 ~ d2@3 ~ e2@3 ~ f#2@3 ~]/3", S: "[g2@12 d2@11 ~ g2@11 ~ d2@11 ~]/3",
  T: "[g2@11 ~ d2@11 ~ g2@11 ~ g2@3 ~ f2@3 ~ e2@4]/3", U: "[c2@11 ~ g1@7 ~ c2@3 ~ a1@11 ~ c2@4 e2@3 ~ c2@3 ~]/3",
  V: "[g2@11 ~ d2@7 ~ g2@3 ~ d2@8]/2", W: "~@4 d2@3 ~ e2@3 ~ f#2@3 ~", X: "g2@11 ~ g2@3 ~",
  Y: "[d2@3 ~ b1@3 ~ b1@10 ~@2 f#2@3 ~ d#2@3 ~ f#2@3 ~]/2", Z: "[e2@11 ~ b2@9 ~ g2 ~ e2@11 ~ b2@3 ~ g2@3 ~ e2@4]/3",
  AA: "[b1@11 ~ f#2@12 b1@11 ~ f#2@11 ~]/3", AB: "[e2@11 ~ b2@12 e2@11 ~ b2@3 ~ a2@3 ~ g2@3 ~]/3",
  AC: "[b1@11 ~ f#2@12 b1@11 ~ f#2@4 e2@3 ~ f#2@3 ~]/3", AD: "[e2@11 ~ b2@12 e2@11 ~ e2@3 ~ d2@3 ~ c2@3 ~]/3",
  AE: "[a1@11 ~ e2@6 d2 ~ c2@3 ~ a1@12 c2@3 ~ a1@4 c2@3 ~]/3", AF: "e2@11 ~ g2@4",
  AG: "[e2@3 ~ g2@3 ~ b1@10 ~@2 b1@3 ~ c#2@3 ~ d#2@3 ~]/2", AH: "e2@11 ~ b2@3 ~",
  AI: "[g2@3 ~ e2@3 ~ d2@11 ~ a2@3 ~ f#2@3 ~ d2@3 ~]/2", AJ: "[g2@11 ~ d2@11 ~ g2@11 ~ d2@11 ~]/3",
  AK: "a2@6 ~@2 d2@3 ~ a2@4", AL: "[~@4 d2@3 ~ a2@11 ~ a2@3 ~ f#2@3 ~ d2@3 ~]/2",
  AM: "[d2@11 ~ a2@10 ~@2 d2@11 ~ a2@10 ~@2]/3", AN: "g2@11 ~ d2@4", AO: "[b2 ~ a2 ~ g2 ~ f#2@2 g2@11 ~ d2@11 ~]/2",
  AP: "[g2@12 d2@11 ~ g2@11 ~ g2@3 ~ a2@3 ~ g2@3 ~]/3", AQ: "c2@11 ~ c2@3 ~",
  AR: "[e2@3 ~ c2@4 a1@11 ~ a1@3 ~ c2@3 ~ d2@3 ~]/2", AS: "[g2@11 ~ g2@10 ~@2 d2@8]/2",
  AT: "[g2@12 d2@7 ~ g2@3 ~ b1@11 ~ b1@2 d#2 ~ f#2@3 ~ d#2@3 ~]/3", AU: "[e2@7 ~ b1@3 ~ e2@7 ~ b1@3 ~ e2@7 ~]/2",
  AV: "b1@3 ~ e2@7 ~ b1@3 ~", AW: "[f#2@7 ~ b1@3 ~ f#2@7 ~ b1@3 ~ f#2@7 ~]/2", AX: "b1@3 ~ f#2@8 b1@3 ~",
  AY: "[f#2@7 ~ b1@3 ~ f#2@8 b1@3 ~ f#2@7 ~]/2", AZ: "[g#2@4 e2@3 ~ d2@11 ~ e2@3 ~ d2@3 ~ c2@4]/2",
  BA: "[a1@11 ~ e2@11 ~ a1@11 ~ a1@3 ~ c2@3 ~ a1@4]/3", BB: "[e2@3 ~ g2@3 ~ b1@11 ~ b1@3 ~ c#2@3 ~ d#2@3 ~]/2",
  BC: "e2@11 ~ b2@4", BD: "[g2@3 ~ e2@3 ~ d2@11 ~ a1@10 ~@2]/2", BE: "g2@5 ~@2 g2 d2@2 ~@2 g2@4",
  BF: "~@3 g2 d2@2 ~@2 b2@3 ~ g2@3 ~", BG: "d2@3 ~ b2 b1@2 ~ b2@3 ~ g2@3 ~",
  BH: "[d2@11 ~ a2@11 ~ d2@10 ~@2 a2@2 ~ f#2@2 ~@2 a2 f#2@2 ~@2]/3",
  BI: "[d2@11 ~ a2@11 ~ d2@11 ~ a2@3 ~ f#2@3 ~ a2@2 ~@2]/3",
  BJ: "[g1@2 ~@2 g2@2 ~@2 g2@3 ~ g1@2 ~ g2@2 ~@2 g1 g2@3 ~ g1@4 g2 ~@3]/2", BK: "g2@3 ~ g1@3 g2!2 ~@3 g2@3 ~",
  BL: "[g2@11 ~ d2@11 ~ g2@11 ~ f2@2 a2@2 g2@2 f2 ~ e2@2 d2@2]/3", BM: "c2@11 ~ g1@4",
  BN: "[c2@3 ~ d2@3 ~ a1@12 c2@3 ~ d2@3 ~ c2@3 ~]/2", BO: "[g2@10 ~@2 g2@11 ~ d2@8]/2",
  BP: "[g2@11 ~ d2@11 ~ b1@10 ~@2 b1@3 ~ c#2@3 ~ d#2@3 ~]/3",
  BQ: "[e2@8 ~@4 e2@7 ~ g2@3 ~ b1@10 ~@2 b1@3 ~ c#2@3 ~ d#2@3 ~]/3", BR: "e2@6 ~@2 b1@4 e2@3 ~", BS: "b2@3 ~ e2@4 a2@8",
  BT: "e2@3 ~ a2@3 ~ e2@3 ~ a2@3 ~", BU: "e2@7 ~ b1@4 e2@4", BV: "b2 ~ b2 ~ e2@2 ~@2", BW: "b2@3 ~ e3@2 ~@2 e2@3 ~@5",
})).s("gm_electric_bass_finger").gain(0.51)

// chords · electric guitar clean · "guitar"
const electric_guitar_clean = note(`<
  ~@3 A@4 B C D E F G B C D E F G H I J K L M N O@2 P Q R S T U V W X V W X S T U S Y Z AA AB AC AD AE@2 AD AF AG B C D
  E F G B C D E F G H I J K L M N O@2 P Q R S T U V W X V W X S T U S Y Z AA AB AC AD AE@2 AD AF AG B C D E F G B C D E
  F G H I J K L M N O@2 P Q R S T U V W X V W X S T U S Y Z AA AB AC AD AE@2 S AH@2 AI AJ@2 AK AL AM AN AO AP
>`.pickRestart({
  A: "[~@16 e4@21 ~@3 [g3,b3]@23 ~, ~@7 d3@12 d3@10 ~@3, ~@15 [g3,b3]@22 ~@3 e4@21 ~@3]/4", // G
  B: "~@4 [e4,g4,b4] ~@3 [e4,g4,b4] ~@7", C: "[e4,g4,b4] ~@3 [e4,g4,b4] ~@7 [e4,g4,b4] ~@3",
  D: "[e4,g4,b4] ~@7 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3", E: "~@4 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@7",
  F: "[b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@7 [a3,d#4,f#4] ~@3", G: "[a3,d#4,f#4] ~@7 [a3,d#4,f#4] ~@3 [a3,d#4,f#4] ~@3",
  H: "~@3 [e4,g#4,b4] [g#4,b4] ~@3 [e4,g#4,b4] ~@6 [e4,g#4,b4]", // E G#m E
  I: "[g#4,b4] ~@3 [e4,g#4,b4] ~@6 [d4,g#4,b4] [g#4,b4] ~@3", // G#m E G#dim G#m
  J: "[d4,g#4,b4] ~@6 [d4,g#4,b4] [g#4,b4] ~@3 [d4,g#4,b4] ~@3", K: "~@3 [c4,e4,a4]!2 ~@3 [c4,e4,a4] ~@6 [c4,e4,a4]",
  L: "[c4,e4] ~@3 [c4,e4,a4] ~@6 [c4,e4,a4]!2 ~@3", M: "[c4,e4,a4] ~@6 [c4,e4,a4]!2 ~@3 [c4,e4,a4] ~@3",
  N: "~@4 [b3,e4,g4] ~@3 [b3,e4,g4] ~@7", O: "[[b3,e4,g4] ~@3 [b3,e4,g4] ~@7 [a3,b3,d#4]@17 ~@3]/2",
  P: "~@3 [b3,e4,g4]!2 ~@3 [b3,e4,g4] ~@6 [b3,e4,g4]", Q: "[b3,e4,g4] ~@3 [b3,e4,g4] ~@6 [a3,c4,f#4]!2 ~@3",
  R: "[a3,c4,f#4] ~@7 [a3,c4,f#4] ~@3 [a3,c4,f#4] ~@3", S: "~@4 [b3,d4,g4] ~@3 [b3,d4,g4] ~@6 [b3,d4,g4]",
  T: "~@4 [b3,d4,g4] ~@7 [b3,d4,g4] ~@3", U: "[b3,d4,g4] ~@6 [b3,d4,g4] ~@4 [b3,d4,g4] ~@3",
  V: "~@4 [c4,d4,f#4] ~@3 [c4,d4,f#4] ~@6 [c4,d4,f#4]", W: "~@4 [c4,d4,f#4] ~@7 [c4,d4,f#4] ~@3",
  X: "[c4,d4,f#4] ~@6 [c4,d4,f#4] ~@4 [c4,d4,f#4] ~@3", Y: "~@4 [b3,d4,g4] ~@7 [b3,d4,f4] ~@3",
  Z: "[b3,d4,f4] ~@6 [b3,d4,f4] ~@4 [b3,d4,f4] ~@3", AA: "~@4 [g3,c4,e4] ~@3 [g3,c4,e4] ~@6 [g3,c4,e4]",
  AB: "~@4 [g3,c4,e4] ~@7 [a3,c4,e4] ~@3", AC: "[a3,c4,e4] ~@6 [a3,c4,e4] ~@4 [a3,c4,e4] ~@3",
  AD: "~@4 [g3,b3,d4] ~@3 [g3,b3,d4] ~@6 [g3,b3,d4]", AE: "[~@4 [g3,b3,d4] ~@3 [a3,c4,d4]@14 ~@10]/2",
  AF: "~@4 [g3,b3,d4] ~@7 [a3,b3,d#4] ~@3", AG: "[a3,b3,d#4] ~@4 [a3,b3,d#4] ~ [b3,d#4] ~@4 [a3,b3,d#4] ~@3",
  AH: "[[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [a3,d#4,f#4]@16 ~@8]/2", // G D#dim
  AI: "[e4,g4,b4] ~@2 [e4,g4,b4] ~@3 [e4,g4,b4]!2 ~@3 [e4,g4,b4] ~@2 [e4,g4,b4]", // Em
  AJ: "[~@3 [e4,g4,b4]!2 ~@3 [d#4,f#4,b4]@14 ~@10]/2", // Em B
  AK: "[e4,g4,b4] [g4,b4] ~@3 [g4,b4] ~ [g4,b4] ~@4 [e4,g4,b4] ~@2 [e4,g4,b4], ~@5 e4@2 ~@9", // Em G Em
  AL: "~@3 [e4,g4,b4]!2 ~@3 [e4,a4,c#5] ~@2 [e4,a4,c#5] ~@3 [e4,a4,c#5]", // Em A
  AM: "[e4,a4,c#5] ~@3 [e4,a4,c#5] ~@2 [e4,a4,c#5] ~@3 [e4,a4,c#5]!2 ~@3", // A
  AN: "[e4,g4,b4]!2 ~@5 [e4,g4,b4]!2 ~@3 [e4,g4,b4] ~@2 [e4,g4,b4]", // Em
  AO: "~@3 [g4,b4]!2 ~@3 [e4,g4,b4] ~@7, ~@3 e4@3 ~@10", AP: "[e4,b4] ~@3 [e4,e5] ~@3 [e4,b4]@2 ~@6",
})).s("gm_electric_guitar_clean").gain(0.51)

// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note(`<
  ~@3 A B@3 C@3 D@3 E@3 F@3 G@8 ~ H@3 I@6 J@3 K@3 L@3 M@5 N@4 O@6 P@6 Q@3 R@3 S@2 T@2 U@8 V@3 W@3 X@3 Y@3 Z@2 AA@4 AB@5
  AC@6 AD@7 AE@2 AF@7 AG@3 AH@3 AI@3 AJ@3 AK@3 AL@2 AM@4 AN@3 AO@3 AP@2 AQ
>`.pickRestart({
  A: "~@7 d3", B: "[e3@41 ~@7]/3", C: "[e4 b4, g4]/3", D: "[~ a4@23 b3@24, d#4, f#4@25 ~@23]/3",
  E: "[e4@23 b4@13 e4@12, g4]/3", F: "[[d#4,f#4]@23 [b3,d#4]@22 ~@3]/3",
  G: "[[g#4,b4]@24 [g#4,d5]@24 ~ a4@45 ~@2 b4@24 [f#4,a4]@3 ~@5, e4@15 ~, ~@24 c5@24 g4@11 ~@5]/8", // G#m G#dim F#m
  H: "[[b4,e5]@23 [a4,c5]@25]/3", I: "[g5@12 b4@11 g4@12 ~ d5@11 ~ a4@47 ~, d5@23 b4@24 f#5@47 ~@2]/6",
  J: "[[c5,f#5]@12 d5@11 ~ c5@19 [a#4,c#5]@5, a4@23 a4@20 ~@5]/3", K: "[[b4,d5]@47 ~]/3", L: "[g5@23 ~ f5@24, d5]/3",
  M: "[[c5,e5]@24 [e4,a4]@23 ~ g3@23 [d3,f#4]@4 ~@5, ~@47 g4@24 ~@9, ~@48 d4@27 ~@5]/5", // C A5 D
  N: "[~@16 g3@23 ~ [b3,a4]@24, ~@15 [g4,b4]@23 ~ b4@23 ~@2]/4", // B7 G
  O: "[e3@23 g3@11 ~ b3@11 ~@2 b3@12 f#3@11 ~ b3@12 f#3@11 ~, [e5,g5]@47 [b4,d#5]@48 ~]/6", // Em B
  P: "[g5@24 b4@12 g5@11 ~@25 [a4,b4]@24, [e3,e5]@47 d#5@24 ~@25, ~ b3]/6", Q: "[e5@24 d5@23 ~, [e3,b4]]/3",
  R: "[[c5,e5]@23 ~, a3]/3", S: "[[e3,g5,b5]@23 ~ [b3,d#5,a5]@5 ~@3, ~@23 f#5@4 ~@5]/2", T: "[~@15 [e3,b4,e5]@17]/2",
  U: "[~@8 d4@23 ~ d5@12 ~@11 c6 d6@12 [g5,b5]@11 d4@36 a3@12 d6, ~@7 [c5,d5]@24 g3@48 ~@49, ~@32 g5@23 ~@24 [a5,c6]@48 ~, ~@44 b5@23 ~@61]/8", // G Csus2 Am
  V: "[a5@11 [a3,c6]@12 ~ f#5@11 ~ [d5,f#5]@6 [f#5,a#5]@6, d4@13 ~@11 d4@18 ~@6, ~@11 a5@25 ~@12, ~@24 b5 ~@23]/3", // Am D F#
  W: "[g3@11 d4@12 ~ [g3,g5]@24, [g5,b5] ~, a#5 ~@22 d5@24 ~]/3", X: "[~@23 f5@24 ~, d5, b4@13 ~@11, ~ g3@45 ~@2]/3",
  Y: "[[c4,c5,e5] [a3,a4,c5]]/3", Z: "[[g3,b4,d5]@23 [d3,a4,c5]@4 ~@5]/2",
  AA: "[~@15 [g3,g4,b4]@24 ~ [a4,d#5]@22 ~ e3, ~@40 b3@23 ~]/4", // G Adim
  AB: "[~@12 b3@11 e3@12 [b3,e5]@11 ~@2 f#5@12 b4@4 d#5@4 f#5@3 a5@9, g5@47 d#5@12 ~@21, b5@35 b4@23 ~@22, ~@24 b3@5 ~ b3@10]/5", // E5
  AC: "[~@3 f#3@4 g5 ~ g5@2 [f#3,f#5]@4 ~@25 b5@11 e5@12 ~ b3@11 ~ b4@4 d#5@4 f#5@4 a5@8, ~@7 d#3@4 ~@4 g5@23 ~ g5@24 ~@33, ~@8 a5@2 ~@5 e5@25 ~@23 [d#5,f#5]@12 ~@21, ~@4 e3@12 ~@3 b3@5]/6", // F# D#m
  AD: "[~@7 g5 ~ g5@2 f#5@4 ~@40 e4@8 ~ [a3,a5]@47 ~, ~@8 a5@2 ~@5 b5@25 d6@24 ~@48, ~@16 g#5@47 c6@49, ~@4 e3@9 ~@15]/7", // A
  AE: "[[e4,b5,e6]@2 ~@2 [e4,b5,e6] ~@3 [e4,e6]@2 ~ [e4,b5,e6]@2 ~@3 [b5,e6]@2 ~@6 [b3,d#6]@3 ~@5, ~@8 b5 ~@6 e4@2 ~@3 [e4,b5,e6]@5 ~@7, ~@23 a5@3 ~@6]/2", // E5 E E5 B E5
  AF: "[~@4 d#5@11 [e3,e5]@24 ~ d4@23 ~ d6 b5 g5 ~ d6 b5 g5 ~ d6 b5 g5 ~ d6 b5 g5 ~ d6 b5 g5 ~ d6 b5 g5 ~ d6 b5 g5 d6 ~ b5 g5 d6 ~ b5 g5 ~ d6 b5 g5 ~ d6 b5 g5 d6 ~ b5 g5 ~, ~@4 b4@35 d5@21 ~@16 d4@34 ~@2, ~@40 c5@21 ~@2 g3@46 ~@3]/7", // E
  AG: "[c5@36 e5 d5 c5 d5 c5 b4 c5 b4 a4 b4 a4 g4, d4]/3",
  AH: "[d4@12 ~@11 a5@12 a3@7 ~@2 f#3@4, [a4,f#5]@20 ~@15 [a4,f#5]@13, c5@18 ~@5 c5@23 ~@2, ~@12 d3@23 ~@13]/3", // D
  AI: "[g3@11 d3@12 ~ g3@12 d3@11 ~, [b4,d5]@47 ~, g5@23 ~ g4@22 ~@2]/3", // Bm
  AJ: "[g3@12 d3@12 g3@12 d3@11 ~, [d5,g5]@24 [d5,f5]@23 ~]/3", AK: "[[c4,g5] [a3,a5], e5@23 ~ e5@22 ~@2]/3",
  AL: "[[d5,g5]@23 ~ d3@4 ~@4, g3@19 ~@4 [c5,f#5]@4 ~@5]/2", // G5 Cdim
  AM: "[~@15 [g3,g5]@25 [d#5,f#5]@22 ~@2, ~@15 b4@47 ~@2, ~@15 d5@23 ~@2 b3@24]/4", // G D#m
  AN: "[[e3,g5,b5]@23 ~ [a5,b5]@23 ~, ~@23 [b3,d#6]@24 ~]/3", AO: "[[e3,g5,b5,e6]@23 ~ [a3,a5,c#6,e6]@24]/3",
  AP: "[[e3,g5,b5,e6]@27 ~@5]/2", AQ: "[b3,b5]@2 ~@2 e6@2 ~@2 [e3,e5]@3 ~@5",
})).s("gm_string_ensemble_1").gain(0.51)

// chords · brass section · "brass"
const brass_section = note(`<
  ~@10 A B@2 C ~@2 A D@2 E@3 F G@2 H@2 ~ I J@2 K L M ~ N O P Q R ~ S T U@3 V W@2 X ~@3 Y Z ~@3 A AA@2 AB ~@2 A D@2 E@3 F
  AC@2 H@2 ~ AD AE@2 AF AG AH ~ AI@2 AJ@2 AK ~ AL AM AN@3 AO@3 AP ~@5 AQ AR AS@4 AT AU AV AW@2 ~ AX@3 F AY@2 H@2 ~ AD
  AE@2 AF AG AH ~ AI@2 AJ@2 AK ~ AL AM AN@3 AZ@3 AP ~@3 BA BB BC ~@2 BD BE BF BG BH BI
>`.pickRestart({
  A: "~@3 [b2,b3]", B: "[[d#3,d#4]@3 [f#3,f#4]@4 ~ [a3,a4]@16 [g3,g4]@4 [f#3,f#4]@4]/2", C: "[e3,e4] ~@7",
  D: "[[d#3,d#4] [f#3,f#4] [a3,a4]@4 [g3,g4] [f#3,f#4]]/2", E: "[[g#3,e4]@19 ~@5]/3", F: "~@3 [e4,e5]",
  G: "[[d4,d5]@3 ~ [c4,c5]@4 [b3,b4] [c4,c5] [b3,b4] [a3,a4]@19 ~@2]/2", H: "[~@6 [g3,e4]@6 [f#3,d#4] ~@3]/2",
  I: "~@12 [d4,b4]@3 ~", J: "[[b3,g4]@3 [g3,e4]@4 ~ [f#3,d4]@16 ~@8]/2", K: "~@3 [b3,g4] ~@4 [b3,g4] ~@5 [b3,g4] ~",
  L: "~@4 [b3,g4] ~@6 [b3,g4] ~@4", M: "[b3,g4] ~@6 [b3,g4] ~@4 [b3,g4] ~@3",
  N: "~@4 [a3,f#4]@2 [b3,g4]@2 [c4,a4]@2 [d4,b4]@2 [c4,a4]@2 [b3,g4] ~", // D Em F G F Em
  O: "~ [g3,e4]@2 ~ [a3,f#4]@9 ~@3, [a3,f#4] ~@7", P: "~@2 [c4,f#4] ~@5 [c4,f#4] ~@5 [c4,f#4] ~",
  Q: "~@4 [c4,f#4] ~@6 [c4,f#4]@2 ~@3", R: "[c4,f#4] ~@6 [c4,f#4]@4 ~ [c#4,a#4]@4",
  S: "~@4 [b3,g4]@2 [c4,a4]@2 [d4,b4] ~ [e4,c5]@2 [d4,b4]@2 [c4,a4]@2", T: "[b3,g4] ~ [a3,f#4]@2 [b3,g4]@9 ~@3",
  U: "[~@12 [g3,g4]@8 [f#3,f#4]@4 [f3,f4]@11 ~ [g3,g4]@3 ~ [a3,a4]@3 ~ [b3,b4]@4]/3", V: "[c4,c5]@13 ~@3",
  W: "[~@4 [g3,e4]@3 ~ [a3,e4]@10 ~@2 [e4,c5]@3 ~ [d4,b4]@3 ~ [c4,a4]@3 ~]/2", X: "[b3,g4] ~@7",
  Y: "~@8 [b3,b4] [c4,c5] [b3,c4,b4,c5] [b3,b4] [c4,c5] [b3,b4] [b3,c4,b4,c5] [c4,c5]", // B C Cmaj7 B C B Cmaj7 C
  Z: "[b3,b4] [c4,c5] [b3,b4] [b3,c4,b4,c5] ~ [b3,c4,b4,c5] [c4,c5] [b3,b4] [c4,c5] [b3,b4] [c4,c5] [b3,c4,b4,c5] [b3,b4] [c4,c5] [b3,b4] [c4,c5]", // B C B Cmaj7 C B C B …
  AA: "[[d#3,d#4] [f#3,f#4] a4@4 [g3,g4] [f#3,f#4], ~@8 a3@15 ~@9]/2", AB: "[e3,e4]@3 ~@13",
  AC: "[[d4,d5]@4 [c4,c5]@4 [b3,b4] [c4,c5] [b3,b4] ~ a3@14 ~@6, ~@11 a4@19 ~@2]/2", AD: "~@3 [d4,b4]",
  AE: "[[b3,g4]@3 ~ [g3,e4]@4 f#3@18 ~@6, ~ d4@2 ~]/2", AF: "~@2 [b3,g4] ~@5 [b3,g4] ~@5 [b3,g4] ~",
  AG: "~@4 [b3,g4] ~@5 [b3,g4] ~@5", AH: "[b3,g4] ~@5 g4 b3 ~@4 [b3,g4] ~@3",
  AI: "[~@6 b3 ~ c4@2 ~@2 c4@2 g4 ~@3 g3@2 [a3,f#4]@10 ~@2, ~@2 [a3,f#4] ~@2 [d4,b4] ~ b3 a3 ~@7, ~@5 g4@2 a4@2 ~@2 a4@2 ~@2 f#4@2 e4@2 ~@13]/2", // D G
  AJ: "[~@2 [c4,f#4] ~@5 [c4,f#4] ~@6 c4@2 ~@3 [c4,f#4] ~@6 f#4@2 ~@3, ~@15 f#4 ~@11 c4 ~@4]/2", // Cdim
  AK: "[c4,f#4] ~@6 f#4@4 ~ [c#4,a#4]@4, ~@7 c4 ~@8", // Cdim F#
  AL: "~@6 c4@2 b4 ~ e4@2 ~@2 a4@2, ~@2 [b3,g4] ~ d4 ~ [d4,b4] ~, ~@5 a4@2 ~@2 c5@2 ~@2 c4@2 ~", // Em G
  AM: "b3@2 [a3,f#4]@2 [b3,g4]@9 ~@3, g4 ~@15", // D Em
  AN: "[~@12 g3@6 [f#3,f#4]@4 ~ f3@12 ~ [g3,g4]@3 ~ [a3,a4]@3 ~ [b3,b4]@4, ~@12 g4@8 ~@2 f4@11 ~@15]/3", // F# G A B
  AO: "[c4@19 ~ [g3,e4]@4 [a3,e4]@10 ~@2 [e4,c5]@3 ~ [d4,b4]@3 ~ [c4,a4]@3 ~, c5@13 ~@35]/3", AP: "[b3,g4]@3 ~@13",
  AQ: "[b3,b4]@2 [b3,b4] ~@3 [b3,b4] ~ [b3,b4] ~@3 [b3,b4] ~ [b3,b4] ~", // B
  AR: "~@2 [b3,b4] ~ [b3,b4] ~@3 [b3,b4] ~ [b3,b4] ~@3 [b3,b4] ~", // B
  AS: "[[b3,b4] ~@3 [b3,b4] c5 c4 [b3,b4] ~ [b3,b4] ~ [g3,a3,g4,a4] [a3,a4] [g3,g4]@2 [f#3,f#4]@3 ~@2 [b2,b3]@33 ~@11, ~@4 [a3,a4] ~@27]/4", // B Gsus2 A G F# B A
  AT: "[b3,b4]@2 ~ [b3,b4] ~@2 [b3,b4] ~ [b3,b4] ~@3 [b3,b4]@2 [b3,b4]@2", // B
  AU: "~@2 [b3,b4] ~ [b3,b4] ~@3 [b3,b4]@2 ~ [b3,b4] ~@2 [b3,b4] ~", // B
  AV: "[b3,b4]@2 ~@2 [b3,b4] [c4,c5]@2 [b3,b4] [a3,a4]@2 [b3,b4] [a3,a4] [g3,g4] [a3,a4] [g3,g4] ~", // B C B A B A G A …
  AW: "[[f#3,f#4]@29 ~@3]/2", AX: "[g#3,e4]/3",
  AY: "[[d4,d5]@4 [c4,c5]@4 [b3,b4] [c4,c5] [b3,b4] ~ a3@16 ~@4, ~@11 a4@19 ~@2]/2", // D C B C B
  AZ: "[[c4,c5]@19 ~ [g3,e4]@4 [a3,e4]@10 ~@2 [e4,c5]@3 ~ [d4,b4]@3 ~ [c4,a4]@3 ~]/3", // C A5 C G F
  BA: "[g3,g4] ~@3 [a3,a4]@2 ~@2 [b3,b4] [c4,c5] [b3,c4,b4,c5] [b3,b4] [c4,c5] [b3,b4] [c4,c5] [b3,b4]", // G A B C Cmaj7 B C B …
  BB: "[b3,c4,b4,c5] [c4,c5] [b3,b4] [c4,c5] [b3,b4] [c4,c5] [b3,b4] [b3,c4,b4,c5] [c4,c5] [b3,b4] [c4,c5] [b3,b4] [c4,c5] [b3,b4] [c4,c5] [b3,c4,b4,c5]", // Cmaj7 C B C B C B Cmaj7 …
  BC: "[b3,b4] ~@15", BD: "~@3 [e4,b4]@3 ~ [b3,g4] [e4,b4]@2 ~@2 [g4,b4]@3 ~",
  BE: "[f#4,a4]@4 [e4,g4]@2 ~@5 [e4,c#5]@3 ~ [c#4,a4]", BF: "[e4,c#5]@2 ~@2 [g4,e5]@3 ~ [f#4,d5]@3 ~ [e4,c#5]@3 ~",
  BG: "~@2 [e4,b4]@4 [b3,g4] ~ [e4,b4]@3 ~ [g4,b4]@3 ~", BH: "[f#4,a4]@2 [e4,g4] ~ [e4,b4] ~@3",
  BI: "[b3,b4]@2 ~@2 [e4,e5] ~@3 [e3,e4]@2 ~@6", // B E
})).s("gm_brass_section").gain(0.51)

// chords · piano · Bsus4
const piano = note("<~ [[b4,e5,f#5,b5] ~@3 [b4,e5,f#5,b5] ~@3 [b4,e5,f#5,b5] ~@3 [b4,e5,f#5,b5] ~@3]!6 ~@153>")
  .s("gm_piano").gain(0.51)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C A B C A B C A B C A B C A B C A B C A B C A B D A B D A B C A B C A B C A B C A B C A B C A B D A B D A B C A
  B C A B C A B C A B C A B C A B D A B D A B C A B C A B C A B C A B C A B C A B D A B D A B C A B C A B C A B C A B C
  A B C A B D A B D A B C A B C A B C A B C A B C A B C A B D E B D A B D A B C A F G
>`.pickRestart({
  A: "x ~@2 x", B: "~ x", C: "~ x ~@2", D: "~ x!3", E: "x ~ x!2", F: "~@2 x!2", G: "~ x!2 ~",
})).gain(0.51)

// drums · rim
const rim = s("rim").struct("<[~ x!3] ~@159>").gain(0.51)

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

// drums · low tom
const low_tom = s("lt").struct("<~@30 A ~@23 A ~@23 A ~@23 A ~@23 A ~@33>".pickRestart({
  A: "~@4 x!2 ~ x ~@8",
})).gain(0.51)

// drums · hihat
// … 46 more lines

More by Tom Jones