Strudelify

Mercy, Mercy, Mercy

The Buckinghams

KeyG majorTempo95 bpm
0:00/0:00
// Mercy, Mercy, Mercy — The Buckinghams
// 95 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 84 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(95/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 · epiano1 · "P1-Electric Piano 1"
const epiano1 = note(`<
  A B C D E F G H I J K@4 L M N O P Q A B R S E T G U V W X@4 L Y N O P Q A B Z AA AB AC AD AE AF AG K@4 L AH N O P Q A
  B AI AJ AK AL AM AN AO AP AQ@4 AR AS AT AU AV AW AX AY AZ@2
>`.pickRestart({
  A: "[e3,b3,e4,g4]@8 ~ [d3,a3,d4,f#4] ~@2 [e3,b3,e4,g4]@8 ~ [d3,a3,d4,f#4] ~@2", B: "[e3,b3,e4,g4] ~@11",
  C: "~@6 d#4 e4@2 ~@3 f3@4 ~@2 [f3,a#3] a3@2 g3@3, g2@6 b2@5 ~, ~@3 g3@5 ~@16, ~@6 c4@2 ~ [b3,d4]@8 ~@7", // A#5 Bm
  D: "a3 ~@2 g3 ~@2 g3@2 ~ e3 ~@2 g3 ~@2 g3 ~@2 a3@3 g3@3, c3, ~@18 g#3 ~@5",
  E: "~@3 g3@3 [c4,e4]@2 g3 ~@9 a3@3 g3@3, g2 b2, ~@6 d#4 ~@2 d4@11 ~@4, ~@9 b3@8 ~ a#3 ~@5", // C
  F: "a3@6 g3 ~@2 e3 ~@2 g3 ~@2 g3 ~@2 a3@2 ~ g3@3, c3, ~@18 g#3 ~@5",
  G: "~@6 d#4 e4 ~@13 [a3,a#3] ~ g3, g2 [b2,f3], ~@3 g3@6 b3@11 ~@4, ~@6 c4@2 ~ d4@13 ~@2", // A#maj7 Bdim
  H: "[c3,a3]@6 g3 ~@2 e3 ~@2 g3 ~@2 g3 ~@2 a3@2 ~ g3@3, ~ c3@3, ~@18 g#3 ~@5", // F
  I: "~@6 d#4 e4 ~@10 a#3 a3@2 g3 ~@2, g2 b2, ~@3 g3@6 ~@6 f3@5 ~@4, ~@6 c4@2 ~ [b3,d4]@7 ~@8", // Bm
  J: "a3@3 ~ g3 ~ g3@2 ~ e3 ~@2 g3 ~@2 g3 ~@2 a3@3 g3 ~@2, c3@23 ~, ~@18 g#3 ~@5",
  K: "[[g3,b3,d4]@5 ~ [g3,b3,d4]@4 ~@2 [g3,c4,e4] ~@2 [g3,c4,e4]@3 g2@2 ~@4 g2@5 ~ [g2,g3,d4,f4]@6 [g2,g3,c4,e4] ~@2 [g3,c4,e4]@3 g2@2 ~@4 g2@5 ~ [g2,g3,b3,d4]@5 ~ [g2,g3,c4,e4] ~@2 [g3,c4,e4]@3 g2 ~@5 g2@4 ~@2 [g2,g3,d4,f4]@5 ~ [g2,g3,c4,e4] ~@2 [g3,c4,e4]@3 g2@2 ~ [g3,b3,d4]@3, g2@11 ~ g2@2 ~@7 [g3,d4,f4]@7 ~@17 [g3,b3,d4]@7 ~@17 [g3,d4,f4]@6 ~@21]/4", // G C G7 C G C G7 C …
  L: "g2@2 ~@4 [g2,g3] ~@2 [g2,g3]@2 ~ [b2,b3]@2 ~ [b2,b3]@2 ~ [c3,c4]@2 ~ [c3,c4]@2 ~", // G B C
  M: "[d3,d4]@2 ~@4 [a#3,e4,g4]@5 ~ [a#3,e4]@3 e4 ~@2 [e4,f#4] ~@2 [b3,d4,g4]@3, ~@6 c3@17 ~, ~@12 g4@5 ~ g4@2 ~@4, ~@15 a#3@5 ~@4", // D Edim A#dim Esus2 G
  N: "g2@2 ~@4 [g2,g3] ~@2 [g2,g3]@2 ~ [b2,b3] ~@2 [b2,b3]@2 ~ c4@2 ~ c3@2 ~, ~@18 c3 ~@2 c4 ~@2", // G B
  O: "d3@2 ~@4 d3@7 ~@2 d3 ~@2 e3@2 ~ g3 ~@2, d4 ~@5 d2@17 ~, ~@18 d#3 ~@5",
  P: "[a2,e3,a3,c4]@6 a2 ~@2 [a2,e3,c4]@12 g3 ~@2, ~@9 a3@10 ~@5", // Am
  Q: "[b2,b3,d4]@7 ~@2 f#3@5 ~ f#3@2 ~ b3@2 ~ d4 ~@2, ~@9 b2@13 ~@2, ~@9 [b3,d4]@8 ~@7", // Bm
  R: "~@6 d#4 e4@2 ~@3 f3@4 ~@2 [f3,a#3] a3@2 g3@3, g2@6 b2@5 ~, ~@3 g3@5 ~@16, ~@6 c4@3 [b3,d4]@8 ~@7", // A#5 Bm
  S: "a3@6 g3@2 ~ e3 ~@2 g3 ~@2 g3 ~@2 a3@3 g3@3, c3, ~@18 g#3 ~@5",
  T: "a3@2 ~@4 c#4 ~@5 [g3,a#3]@2 ~ a#3@2 ~ a3@2 ~ g3@3, c3, ~@3 a3@5 ~ g4@9 g#3 ~@5, ~@6 d4@6 ~@3 g3 ~@2 f3@5 ~", // Gm
  U: "a3@2 ~ g3@2 ~ g3 ~@2 e3 ~@2 g3 ~@2 g3@3 [e3,a3]@2 ~ g4@2 ~, c3 c3@3, ~@3 c4, ~@18 [d#3,g#3] ~@5", // A5 G#5
  V: "~@6 d#4 e4 ~@10 a#3 a3@2 g3 ~@2, [g2,d3] b2, ~@3 g3@5 ~@7 f3@5 ~@4, ~@6 c4@2 ~ [b3,d4]@7 ~@8", // G5 Bm
  W: "a3@3 ~ g3 ~ g3@2 ~ e3 ~@2 g3 ~@2 g3 ~@2 a3@2 ~ g3 ~@2, c3@23 ~, ~@18 g#3 ~@5",
  X: "[[g3,b3,d4]@5 ~ [g3,b3,d4]@4 ~@2 [g3,c4,e4] ~@2 [g3,c4,e4]@3 g2@2 ~@4 g2@5 ~ [g2,g3,d4,f4]@6 [g2,g3,c4,e4] ~@2 [g3,c4,e4]@3 g2@2 ~@4 g2@5 ~ [g2,g3,b3,d4]@5 ~ [g2,g3,c4,e4] ~@2 [g3,c4,e4]@3 g2 ~@5 g2@4 ~@2 [g2,g3,d4,f4]@5 ~ [g2,g3,c4,e4] ~@2 [g3,c4,e4]@3 g2@2 ~ [g3,b3,d4]@3, g2@11 ~ g2@2 ~@7 [g3,d4,f4]@7 ~@17 [g3,b3,d4]@7 ~@17 [g3,d4,f4]@7 ~@20]/4", // G C G7 C G C G7 C …
  Y: "[d3,d4]@2 ~@4 [a#3,c4,e4,g4]@5 ~ [a#3,c4,e4]@3 c4@2 ~ [c4,g4]@2 ~ [b3,d4,g4]@3, ~@6 c3@17 ~, ~@12 g4@5 ~@7, ~@15 a#3@5 ~@4, ~@15 e4 ~@2 [e4,f#4] ~@5", // D C7 C5 G Esus2
  Z: "[g2,f3,b3,d4]@12 [b2,f3,b3,d4] ~@2 [f3,b3,d4]@6 f3 ~@2, ~@5 b2@3", // G7 Bdim
  AA: "[g3,a#3] ~@2 g3 ~@2 [g3,a#3,d4] ~@2 g3 ~@2 [g3,a#3,c4] ~@2 g3@3 ~@3 g3@3, c3@10 ~@2 c3@3 [a#3,c4]@6 ~@3, ~@3 c3", // Gm C7 A#sus2
  AB: "~@3 f3@2 ~ [f3,b3] ~@2 f3 ~@2 [g2,f3,b3,d4] ~@2 f3@3 ~@3 f3@2 ~, g2@5 ~@4 b2@3, ~@6 d4@2 ~@7 [b3,d4]@6 ~@3", // Fdim G7 Bm
  AC: "c3@2 ~ g3 ~@2 [c3,a#3,d4]@3 g3 ~@2 [g3,a#3,c#4,d4] ~@2 g3@3 ~@3 g3@3, ~@6 [g3,c#4] ~@5 c3@2 ~ [a#3,e4]@6 ~@3, ~@3 c3", // Gm Gdim A#dim
  AD: "~@3 f3@2 ~ [b3,d4]@3 f3@2 ~ [b2,f3,b3,d4] ~@2 f3@3 b2@3 [f3,b3,d4]@3, g2@9 ~@3 g2@2 ~ b2@2 ~@7, ~@6 f3 ~@8 [b3,d4]@6 ~@3", // Bm Bdim Bm
  AE: "~@3 g3 ~@2 [a#3,d4]@2 ~ g3@2 ~ [c3,g3,a#3,d4]@2 ~@7 [g3,a#3,e4,g4]@3, c3@3 ~@3 c3@2, ~@6 g3 ~@8 [g3,a#3,e4]@5 ~@4", // A# Gm Edim
  AF: "~@3 f3 ~@2 [f3,b3,d4]@3 f3 ~@2 [f3,b3,d4] ~@2 [f3,b3,d4]@5 ~ [g2,f3,b3,d4]@3, g2@9 ~@3 b2@8 ~@4", // Bdim G7
  AG: "~@3 g3 ~@2 [g3,a#3,e4]@3 g3@2 ~ [a#3,e4] ~@2 g3@3 ~@3 g3@2 ~, c3@10 ~@2 c3@3 ~@3 c3@6, ~@12 g3@2 ~ [a#3,d4]@6 ~@3", // Edim A#dim A#
  AH: "[d3,d4]@2 ~@4 [a#3,c4,e4,g4]@5 ~ [a#3,c4,e4]@3 c4@2 ~ [c4,g4]@2 ~@2 g3@2, ~@6 c3@17 ~, ~@12 g4@5 ~@7, ~@15 a#3@5 ~ [b3,d4,g4]@3, ~@15 e4 ~@2 [e4,f#4] ~@5", // D C7 C5 G Esus2
  AI: "~@6 e4 f4@2 ~@3 f#3@4 ~@2 [f#3,b3] a#3@2 g#3@3, g#2@6 c3@5 ~, ~@3 g#3@5 ~@16, ~@6 c#4@2 ~ [c4,d#4]@8 ~@7", // B5 Cm
  AJ: "a#3 ~@2 g#3 ~@2 g#3@2 ~ f3 ~@2 g#3 ~@2 g#3 ~@2 a#3@3 g#3@3, c#3, ~@18 a3 ~@5",
  AK: "~@3 g#3@3 [c#4,f4]@2 g#3 ~@9 a#3@3 g#3@3, g#2 c3, ~@6 e4 ~@2 d#4@11 ~@4, ~@9 c4@8 ~ b3 ~@5", // C#
  AL: "a#3@6 g#3 ~@2 f3 ~@2 g#3 ~@2 g#3 ~@2 a#3@2 ~ g#3@3, c#3, ~@18 a3 ~@5",
  AM: "~@6 e4 f4 ~@13 [a#3,b3] ~ g#3, g#2 [c3,f#3], ~@3 g#3@6 c4@11 ~@4, ~@6 c#4@2 ~ d#4@13 ~@2", // Bmaj7 Cdim
  AN: "[c#3,a#3]@6 g#3 ~@2 f3 ~@2 g#3 ~@2 g#3 ~@2 a#3@2 ~ g#3@3, ~ c#3@3, ~@18 a3 ~@5", // F#
  AO: "~@6 e4 f4 ~ [c#4,f4]@3 ~@6 b3 a#3@2 g#3 ~@2, g#2 c3, ~@3 g#3@6 ~@3 [c4,d#4]@7 ~@5, ~@6 c#4@2 ~ e4 ~@5 f#3@5 ~@4", // C# Cm
  AP: "a#3@3 ~ g#3 ~ g#3@2 ~ f3 ~@2 g#3 ~@2 g#3 ~@2 a#3@3 g#3 ~@2, c#3@23 ~, ~@18 a3 ~@5",
  AQ: "[[g#3,c4,d#4]@5 ~ [g#3,c4,d#4]@4 ~@2 [g#3,c#4,f4] ~@2 [g#3,c#4,f4]@3 g#2@2 ~@4 g#2@5 ~ [g#2,g#3,d#4,f#4]@6 [g#2,g#3,c#4,f4] ~@2 [g#3,c#4,f4]@3 g#2@2 ~@4 g#2@5 ~ [g#2,g#3,c4,d#4]@5 ~ [g#2,g#3,c#4,f4] ~@2 [g#3,c#4,f4]@3 g#2 ~@5 g#2@4 ~@2 [g#2,g#3,d#4,f#4]@5 ~ [g#2,g#3,c#4,f4] ~@2 [g#3,c#4,f4]@3 g#2@2 ~ [g#3,c4,d#4]@3, g#2@11 ~ g#2@2 ~@7 [g#3,d#4,f#4]@7 ~@17 [g#3,c4,d#4]@7 ~@17 [g#3,d#4,f#4]@6 ~@21]/4", // G# C# G#7 C# G# C# G#7 C# …
  AR: "g#2@2 ~@4 [g#2,g#3] ~@2 [g#2,g#3]@2 ~ [c3,c4]@2 ~ [c3,c4]@2 ~ [c#3,c#4]@2 ~ [c#3,c#4]@2 ~", // G# C C#
  AS: "[d#3,d#4]@2 ~@4 [b3,c#4,f4,g#4]@5 ~ [b3,c#4,f4]@3 c#4@2 ~ [c#4,g#4]@2 ~@2 g#3@2, ~@6 c#3@17 ~, ~@12 g#4@5 ~@7, ~@15 b3@5 ~ [c4,d#4,g#4]@3, ~@15 f4 ~@2 [f4,g4] ~@5", // D# C#7 C#5 G# Fsus2
  AT: "g#2@2 ~@4 [g#2,g#3] ~@2 [g#2,g#3]@2 ~ [c3,c4] ~@2 [c3,c4]@2 ~ c#4@2 ~ c#3@2 ~, ~@18 c#3 ~@2 c#4 ~@2", // G# C
  AU: "d#3@2 ~@4 d#3@7 ~@2 d#3 ~@2 f3@2 ~ g#3 ~@2, d#4 ~@5 d#2@17 ~, ~@18 e3 ~@5",
  AV: "[a#2,f3,a#3,c#4]@6 a#2 ~@2 [a#2,f3,c#4]@12 g#3 ~@2, ~@9 a#3@10 ~@5", // A#m
  AW: "[c3,c4,d#4]@7 ~@2 g3@5 ~ g3@2 ~ c4@2 ~ d#4 ~@2, ~@9 c3@13 ~@2, ~@9 [c4,d#4]@8 ~@7", // Cm
  AX: "[f3,c4,f4,g#4]@8 ~ [d#3,a#3,d#4,g4] ~@2 [f3,c4,f4,g#4]@8 ~ [d#3,a#3,d#4,g4] ~@2", AY: "[f3,c4,f4,g#4] ~@11",
  AZ: "[~ [g#3,c4,d#4,f#4,g#4]@19 ~@4]/2", // G#7
})).s("gm_epiano1").gain(0.36).pan(0.7)

// bass · acoustic bass · "P2-Acoustic Bass #"
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V C D E F G H I J K W M N X Y Q R Z T U V C D AA F G H AB J K L M N AC AD Q
  R Z T U AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ@2
>`.pickRestart({
  A: "e2@9 d2@2 ~ e2@9 d2 ~@2", B: "e2 ~@23", C: "g1 b1", D: "c2@11 ~ c2@9 d2@3", E: "g1@12 b1@9 b1 ~@2",
  F: "c2@11 ~ c2@8 ~ d2@3", G: "g1@12 b1 ~@2 b1@9", H: "c2@11 ~ c2@2 ~ c2@9", I: "g1@12 b1 ~@2 b1@5 ~ f1@3",
  J: "c2@11 ~ c2 ~@2 c2@6 d2@3", K: "g1@5 ~ g1@5 ~ g1@4 ~@2 g1@5 ~", L: "g1@4 ~@2 g1@4 ~@2 g1@3 ~@3 g1@3 d2@3",
  M: "g1@5 ~ g1@4 ~@2 g1@3 ~@3 g1@4 ~@2", N: "g1@4 ~@2 g1@3 ~@3 g1@4 ~@2 g1@3 d2@3",
  O: "g1@2 ~@4 g1@2 ~ g1@3 b1@2 ~ b1@3 c2@2 ~ c2@2 ~", P: "d2 ~ c2@5 ~",
  Q: "g1@2 ~@4 g1 ~@2 g1 ~@2 b1 ~@2 b1@2 ~ c2@2 ~ c2@3", R: "d2 ~@23", S: "a1@7 ~@2 a1@12 e1@2 ~",
  T: "b1@7 ~@2 b1@7 ~@2 b1@3 d2@2 ~", U: "e2@9 d2@2 ~ e2@9 d2@2 ~", V: "e2 ~@11",
  W: "g1@4 ~@2 g1@4 ~@2 g1@3 ~@3 d2@3 g2@3, ~@18 c#2 ~@5", X: "g1@2 ~@4 g1@2 ~ g1@3 b1@2 ~ b1@2 ~ c2@2 ~ c2@2 ~",
  Y: "d2@3 ~@3 c2@6 c2@3 b1@3 a1@3 g1@2 ~", Z: "a1@7 ~@2 a1@12 e2@2 ~", AA: "g1@12 b1@3 b1@5 ~ b1 ~@2",
  AB: "g1@12 b1 ~@2 b1@5 ~ g2@3", AC: "g1@2 ~@4 g1@2 ~ g1@2 ~ b1@2 ~ b1@2 ~ c2@2 ~ c2@2 ~",
  AD: "d2@3 ~@3 c2@5 ~ c2@2 ~ e2@2 ~ f#2@2 ~ g2@2 ~", AE: "e2@2 ~@19 d#2@3, ~@21 d2 ~@2", AF: "g#1 c2",
  AG: "c#2@11 ~ c#2@6 e2@3 g#2@3", AH: "g#1@12 c2@2 ~ c2@5 ~ c2 ~@2", AI: "c#2@11 ~ c#2@8 ~ d#2@3",
  AJ: "g#1@12 c2 ~@2 c2@6 g#1@3", AK: "c#2@11 ~ c#2@2 ~ c#2@9", AL: "g#1@12 c2 ~@2 c2@5 ~ f#1@3",
  AM: "c#2@11 ~ c#2 ~@2 c#2@6 d#2@3", AN: "g#1@5 ~ g#1@5 ~ g#1@4 ~@2 g#1@5 ~",
  AO: "g#1@4 ~@2 g#1@4 ~@2 g#1@3 ~@3 g#1@3 d#2@3", AP: "g#1@5 ~ g#1@4 ~@2 g#1@3 ~@3 g#1@4 ~@2",
  AQ: "g#1@4 ~@2 g#1@3 ~@3 g#1@4 ~@2 g#1@3 d#2@3", AR: "g#1@2 ~@4 g#1@2 ~ g#1@3 c2@2 ~ c2@3 c#2@2 ~ c#2@2 ~",
  AS: "d#2 ~ c#2@3 c2 a#1 g#1", AT: "g#1@2 ~@4 g#1 ~@2 g#1 ~@2 c2 ~@2 c2@2 ~ c#2@2 ~ c#2@3", AU: "d#2 ~@23",
  AV: "a#1@7 ~@2 a#1@12 e2@2 ~", AW: "c2@7 ~@2 c2@7 ~@2 c2@3 d#2@2 ~", AX: "f2@9 d#2@2 ~ f2@9 d#2@2 ~", AY: "f2 ~@11",
  AZ: "[~ g#1@19 ~@4]/2",
})).s("gm_acoustic_bass").gain(0.41).pan(0.6)

// chords · brass section · "P3-Brass Section"
const brass_section = note(`<
  A B ~@20 C@3 D@4 E F@4 G H I J K L M N ~@8 O@4 G H I J K L M N P@3 Q@4 R S@4 T U V W X Y Z AA AB@2
>`.pickRestart({
  A: "[e4,g4]@8 ~ [d4,f#4] ~@2 [e4,g4]@7 ~@2 f#4@2 ~, ~@21 d4 ~@2", B: "[e4,g4] ~@23",
  C: "[g4@38 ~ g4 ~@2 d#4 e4@2 d4@24 e4 ~@2, f#4 ~@71]/3",
  D: "[a#3 a3@2 g3@16 ~@2 g4@37 ~@2 [d#4,e4] ~@2 e4@6 d4@21 e4 ~@5, ~@63 d#4 ~@32]/4", E: "a#3 a3@2 g3@18 ~@3",
  F: "[[d4,g4]@5 ~ [d4,g4]@5 ~ [e4,g4] ~@2 [e4,g4]@4 ~@2 [f4,g4]@8 ~ [f4,g4]@5 ~ [e4,g4] ~@2 [e4,g4]@4 ~@2 [d4,g4]@8 ~ [d4,g4]@5 ~ [e4,g4] ~@2 [e4,g4]@3 ~@3 [f4,g4]@8 ~ [f4,g4]@5 ~ [e4,g4] ~@2 [e4,g4]@5 ~ [d4,g4]@3]/4", // G5 Em Fsus2 Em G5 Em Fsus2 Em …
  G: "~@6 g3 ~@2 g3 ~@2 b3 ~@2 b3@2 ~ c4@2 ~ c4 ~@2", H: "d4@2 ~@4 g4@5 ~ g4@3 e4 ~@2 g4 ~@2 g4@2 ~",
  I: "~@6 g3 ~@2 g3@2 ~ b3@2 ~ b3@2 ~ c4@2 ~ c4 ~@2", J: "d4 ~@11", K: "[a3,c4]@8 ~ [a3,c4]@13 ~@2",
  L: "[b3,d4]@8 ~ [b3,d4]@12 ~@3", M: "[e4,g4]@8 ~ [d4,f#4] ~@2 [e4,g4]@7 ~@2 [d4,f#4] ~@2", N: "g4 ~@11, e4 ~@23",
  O: "[[d4,g4]@5 ~ [d4,g4]@5 ~ [e4,g4] ~@2 [e4,g4]@4 ~@2 [f4,g4]@8 ~ [f4,g4]@5 ~ [e4,g4] ~@2 [e4,g4]@4 ~@2 [d4,g4]@8 ~ [d4,g4]@5 ~ [e4,g4] ~@2 [e4,g4]@4 ~@2 [f4,g4]@8 ~ [f4,g4]@5 ~ [e4,g4] ~@2 [e4,g4]@5 ~ [d4,g4]@3]/4", // G5 Em Fsus2 Em G5 Em Fsus2 Em …
  P: "[g#4@38 ~ g#4 ~@2 f4@3 d#4@23 ~ f4 ~@2, g4 ~@41 e4 ~@29]/3",
  Q: "[a#3@3 g#3@16 ~@2 g#4@37 ~@2 e4 f4 ~ e4 f4@5 d#4@21 f4 ~@5, b3 ~@95]/4", R: "b3 a#3@2 g#3@18 ~@3",
  S: "[[d#4,g#4]@5 ~ [d#4,g#4]@5 ~ [f4,g#4] ~@2 [f4,g#4]@4 ~@2 [f#4,g#4]@8 ~ [f#4,g#4]@5 ~ [f4,g#4] ~@2 [f4,g#4]@4 ~@2 [d#4,g#4]@8 ~ [d#4,g#4]@5 ~ [f4,g#4] ~@2 [f4,g#4]@3 ~@3 [f#4,g#4]@8 ~ [f#4,g#4]@5 ~ g#4@2 ~ [f4,g#4]@5 ~ [d#4,g#4]@3, ~@84 f4 ~@11]/4", // G#5 Fm F#sus2 Fm G#5 Fm F#sus2 Fm …
  T: "~@6 g#3 ~@2 g#3@2 ~ c4 ~@2 c4@2 ~ c#4@2 ~ c#4 ~@2", U: "d#4@2 ~@4 g#4@5 ~ g#4@3 f4 ~@2 g#4 ~@2 g#4@2 ~",
  V: "~@6 g#3 ~@2 g#3@2 ~ c4@2 ~ c4@2 ~ c#4@2 ~ c#4 ~@2", W: "d#4 ~@11", X: "[a#3,c#4]@8 ~ [a#3,c#4]@13 ~@2",
  Y: "[c4,d#4]@8 ~ [c4,d#4]@13 ~@2", Z: "[f4,g#4]@8 ~ [d#4,g4] ~@2 [f4,g#4]@7 ~@2 [d#4,g4] ~@2",
  AA: "g#4 ~@11, f4 ~@23", AB: "[~@2 g#4@37 ~@9]/2",
})).s("gm_brass_section").gain(0.19).pan(0.4)

// other · baritone sax · "P5-Baritone Sax"
const baritone_sax = note(`<
  ~@22 A@3 B@4 C D@4 E F G H I J K L ~@8 D@4 E F G H I J K ~ M@3 N@4 O P@4 Q R S T U V W X Y@2
>`.pickRestart({
  A: "[g3@38 ~ g3 ~@2 e3@3 d3@23 ~ e3 ~@2, f#3 ~@41 d#3 ~@29]/3",
  B: "[a2@3 g2@16 ~@2 g3@37 ~@2 d#3 e3 ~ d#3 e3@5 d3@21 e3 ~@5, a#2 ~@95]/4", C: "a#2 a2@2 g2@18 ~@3",
  D: "[d3@5 ~ d3@5 ~ e3 ~@2 e3@4 ~@2 f3@8 ~ f3@5 ~ e3 ~@2 e3@4 ~@2 d3@8 ~ d3@5 ~ e3 ~@2 e3@3 ~@3 f3@8 ~ f3@5 ~ e3 ~@2 e3@5 ~ d3@3]/4",
  E: "~@6 g2 ~@2 g2@2 ~ b2 ~@2 b2@2 ~ c3@2 ~ c3 ~@2", F: "d3@2 ~@4 g3@5 ~ g3@3 e3 ~@2 g3 ~@2 g3@2 ~",
  G: "~@6 g2@2 ~ g2 ~@2 b2@2 ~ b2 ~@2 c3 ~@2 c3 ~@2", H: "d3 ~@11", I: "a2@8 ~ a2@13 ~@2", J: "b2@8 ~ b2@13 ~@2",
  K: "e3@8 ~ d3 ~@2 e3@7 ~@2 d3 ~@2", L: "e3 ~@23", M: "[g#3@38 ~ g#3 ~@2 f3@3 d#3@23 ~ f3 ~@2, g3 ~@41 e3 ~@29]/3",
  N: "[a#2@3 g#2@16 ~@2 g#3@37 ~@2 e3 f3 ~ e3 f3@5 d#3@21 f3 ~@5, b2 ~@95]/4", O: "b2 a#2@2 g#2@18 ~@3",
  P: "[d#3@5 ~ d#3@5 ~ f3 ~@2 f3@4 ~@2 f#3@8 ~ f#3@5 ~ f3 ~@2 f3@4 ~@2 d#3@8 ~ d#3@5 ~ f3 ~@2 f3@3 ~@3 f#3@8 ~ f#3@5 ~ f3 ~@2 f3@5 ~ d#3@3]/4",
  Q: "~@6 g#2 ~@2 g#2@2 ~ c3 ~@2 c3@2 ~ c#3@2 ~ c#3 ~@2", R: "d#3@2 ~@4 g#3@5 ~ g#3@3 f3 ~@2 g#3 ~@2 g#3@2 ~",
  S: "~@6 g#2@2 ~ g#2 ~@2 c3@2 ~ c3 ~@2 c#3 ~@2 c#3 ~@2", T: "d#3 ~@11", U: "a#2@8 ~ a#2@13 ~@2", V: "c3@8 ~ c3@13 ~@2",
  W: "f3@8 ~ d#3 ~@2 f3@7 ~@2 d#3 ~@2", X: "f3 ~@23", Y: "[~ [g#2,c4]@19 ~@4]/2",
})).s("gm_baritone_sax").gain(0.19).pan(0.4)

// other · tenor sax · "P6-Super Tenor Plus"
const tenor_sax = note("<~@41 A@2 B C D E F G H I@4 J K L M N O P Q ~@22>".pickRestart({
  A: "[~@18 [f#4,g4] ~@2 g4@26 ~, ~@21 f#4 ~@26]/2", B: "~@8 d4 f4 ~ d4 g4 ~@2 g4@6 e4 ~@2", C: "g4@6 [a#4,b4] ~@17",
  D: "~@3 d5@3 c5 [g4,a4,b4] [d4,e4,f4] [f3,g3,a3,c4] ~@11 [c#5,d5] ~@2, ~@3 c#5 ~@20", // G Dm F Dmaj7
  E: "d5@8 ~ e5 ~@5 g5 ~@2 a#4 a4@2 g4 ~@2, c#5 ~@23", F: "g4@3 a4 ~@20",
  G: "~@3 d4 e4 d4 g4 ~@2 b4 ~@2 d5@4 ~@2 d5@4 ~@2, ~@12 c#5 ~@5 c#5 ~@5",
  H: "a#4 a4@2 g4 ~@2 g4@3 e4 ~@2 g4 ~@2 g4 ~@2 a4@2 ~ g4 ~@2, ~@18 g#4 ~@5",
  I: "[b3@4 ~@2 b3@4 ~@2 c4 ~@2 c4@4 ~@2 d4@7 ~@2 d4@5 ~ c4 ~@2 c4@5 ~ b3@7 ~@2 b3@5 ~ c4 ~@2 c4@6 d4@7 ~@2 d4@5 ~ c4 ~@2 c4@6 b3 ~@2]/4",
  J: "~@6 g3 ~@2 g3 ~@2 b3 ~@2 b3 ~@2 c4 ~@2 c4 ~@2", K: "d4 ~@5 g4@5 ~ g4@2 ~ e4 ~@2 g4 ~@2 g4 ~@2",
  L: "~@6 g3 ~@2 g3@2 ~ b3 ~@2 b3@2 ~ c4 ~@2 c4 ~@2", M: "d4 ~@23", N: "a3@7 ~@2 a3@12 ~@3",
  O: "b3@6 ~@3 b3@6 a3 ~@2 b3 ~@2 d4 ~@2", P: "e4@7 ~@2 d4 ~@2 e4@8 ~ d4 ~@2", Q: "e4 ~@23",
})).s("gm_tenor_sax").gain(0.64).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  A B C D C@2 D C@2 E C@2 D C F G H B I@2 A B C D C@2 D C@2 E C@2 D J F K H L I@2 M B C D C@2 D C@2 E J@2 N J F K O B
  I@2 M B C D C@2 D C@2 E C@2 D C F P H L I@2 A B Q R
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x", C: "x ~@10 x!2 ~@8 x ~@2", D: "x ~@10 x!2 ~@2 x ~@5 x ~@2",
  E: "x ~@10 x!2 ~@2 x ~@4 x ~@3", F: "x ~ x ~ x ~@2 x", G: "x ~@3 x!4", H: "x ~ x!6", I: "x ~@2 x ~@3 x",
  J: "x ~@8 x ~ x!2 ~@8 x ~@2", K: "x ~@10 x!2 ~@2 x ~ x ~@3 x ~@2", L: "x ~@10 x!2 ~@11", M: "x!2",
  N: "x ~@8 x ~ x!2 ~@2 x ~@5 x ~@2", O: "~@2 x!6", P: "x ~@4 x!3", Q: "~ x ~@10", R: "~@2 x",
})).gain(0.24)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@12 B C B D A E F ~ A@12 B G B H A E F ~ A@12 B G B D A E F ~ A@7 E A@4 B D B H A E F ~ I ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x!6", C: "x ~ x ~@4 x", D: "x", E: "~@2 x ~@3 x!2", F: "x ~@2 x ~@4", G: "x!2 ~ x",
  H: "x!2 ~@2", I: "~ x ~@10",
})).gain(0.28)

// drums · clap
const clap = s("cp").struct("<~@61 [~ x ~ x]!16 ~ [~ x ~ x]!2 ~@4>").gain(0.28)

// drums · low tom
const low_tom = s("lt").struct("<~@9 A ~@10 A ~@8 A ~@5 B ~@4 A ~@8 A ~@5 B ~@4 A ~@19 A ~@3>".pickRestart({
  A: "~@7 x", B: "~@17 x ~@3 x ~@2",
})).gain(0.31)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C@7 D C@4 B E F B G@2 H B C@7 D C@4 B I J K G@2 H L C@7 D C@4 B M J B G@2 H B C@7 N C@4 B@2 F K G@2 H B O ~
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x", C: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~",
  D: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~@4 x!2 ~", E: "x ~@3 x!2 ~@2", F: "x ~ x!6", G: "x!8", H: "x ~@2 x ~@3 x",
  I: "x!2 ~@10 x!2 ~ x!2 ~@4 x!2 ~", J: "~@2 x!6", K: "x ~@8 x!2 ~ x!2 ~@10", L: "x!2 ~@2",
  M: "x ~@2 x!2 ~@4 x!2 ~ x!2 ~ x!2 ~@4 x!2 ~", N: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~@3 x ~ x ~", O: "~ x ~@10",
})).gain(0.17)

// drums · mid tom
const mid_tom = s("mt").struct("<~@15 A ~@4 A ~@14 A ~ B ~@2 A ~@14 B ~@4 A ~@14 C ~ C ~@2 A ~@3>".pickRestart({
  A: "~ x", B: "~@2 x!2 ~@2", C: "~ x ~",
})).gain(0.31)

// drums · high tom
const high_tom = s("ht").struct("<~@35 [~ x ~@6] ~@19 [~ x ~@6] ~@19 [~ x ~@6] ~@8>").gain(0.31)

// drums · crash
const crash = s("cr").struct("<A B@2 ~@12 C ~@4 A B@2 ~@12 C ~@4 A B ~@13 C ~@4 A B ~@13 C ~@4 A B D ~>".pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x", C: "~ x ~@2", D: "~ x ~@10",
})).gain(0.28)

// drums · tambourine
const tambourine = s("tb").struct("<~@2 A@12 ~@8 A@12 ~@8 A@12 ~@8 A@12 ~@10>".pickRestart({
  A: "~@5 x ~@11 x ~@6",
})).gain(0.28)

stack(
// … 3 more lines

More by The Buckinghams