Strudelify

Lawyers, Guns and Money

Warren Zevon

KeyB♭ majorTempo95 bpm
0:00/0:00
// Lawyers, Guns and Money — Warren Zevon
// 95.2 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 62 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 29.
setcpm(95.2/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 · "LawyrsGuns&$$"
const bass = note("<~ A B A C D E F G H I F G J K L M N O G H I F G J P Q@8 R@8 S@16 T@3 ~>".pickRestart({
  A: "bb1@20 ~@4 [bb1,bb2]@21 ~@3", B: "bb1@21 ~@3 f1@2 ~@4 f1@3 ~@3 f1 ~@2 f1@7 ~@2",
  C: "bb1@19 ~@5 f2@3 d2@8 ~ c2@3 a1@2 ~ f1@6", D: "bb1@21 ~@3 [bb1,bb2]@22 ~@2",
  E: "bb1@21 ~@3 f2@3 d2@2 ~ c2@3 a1@2 ~ f1@9 ~@3", F: "eb2@23 ~ bb1@22 ~@2", G: "f1@9 ~@12 f1 ~@2 f1@2 ~@4 f1@6 ~@12",
  H: "eb2@22 ~@2 bb1@21 ~@3", I: "eb2@6 ~@3 eb2@8 ~ d2@6 bb1@3 ~@3 bb1@15 ~@3", J: "eb2@17 ~ d2@5 ~ bb1@4 ~@20",
  K: "bb1@7 ~ [bb1,bb2]@7 ~", L: "bb1@19 ~@5 f2@2 ~@4 f2@2 ~@4 f2 ~@2 f2@6 ~@3", M: "bb1@7 ~ bb1@7 ~",
  N: "bb1@20 ~@4 f2 ~@2 f2@3 ~@3 f2@13 ~@2", O: "eb2@10 ~@2 bb1@11 ~", P: "bb1@21 ~@2 [bb1,bb2]@21 ~@3 bb1",
  Q: "[~@23 f2@2 ~@4 f2@2 ~@4 f2 ~@2 f2@6 ~@3 bb1@21 ~@3 bb1@21 ~@3 bb1@20 ~@4 f2 ~@2 f2@3 ~@3 f2@13 ~@2 eb2@22 ~@2 f2@22 ~@2 bb1@20 ~@4 bb1@9 ~@3 f1@9 ~@3 eb2@22 ~@2 f2@22 ~@2 bb1@20 ~@4 bb1@9 ~@3 f1@9 ~@3 eb2@22 ~@2 f2@22 ~@2 bb1]/8",
  R: "[~@5 bb1@2 ~@4 bb1@3 ~@3 bb1@3 ~@3 bb1@2 ~@4 bb1@2 ~@4 bb1@3 ~@3 bb1@3 ~@3 bb1@21 ~@3 [bb1,bb2]@21 ~@3 bb1@19 ~@5 f2@2 ~@4 f2@2 ~@4 f2 ~@2 f2@6 ~@3 bb1@21 ~@3 bb1@21 ~@3 bb1@20 ~@4 f2 ~@2 f2@3 ~@3 f2@13 ~@2 bb1@21 ~@3 [bb1,bb2]@21 ~@3 bb1@19 ~@5 f2@2 ~@4 f2@2 ~@4 f2 ~@2 f2@6 ~@3 eb2@6 ~@18 bb1@6 ~@18 f1]/8", // Bb
  S: "[~@47 bb1@21 ~@3 [bb1,bb2]@21 ~@3 bb1@19 ~@5 f2@2 ~@4 f2@2 ~@4 f2 ~@2 f2@6 ~@3 eb2@6 ~@18 bb1@6 ~@18 f1@5 ~@43 bb1@21 ~@3 [bb1,bb2]@21 ~@3 bb1@19 ~@5 f2@2 ~@4 f2@2 ~@4 f2 ~@2 f2@6 ~@3 eb2@6 ~@18 bb1@6 ~@18 f1]/8", // Bb
  T: "[~@47 bb1@97]/3",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · piano
const piano = note("<~ A B C D C E F G H I F G J A B C E F G H I F G J K@3 L@6 M@7 N@16 O@4 ~>".pickRestart({
  A: "[bb2,eb3,g3,bb3]@7 ~ [bb2,eb3,g3,bb3]@7 ~", // Eb
  B: "[bb2,eb3,g3,bb3]@15 ~@3 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@21 ~@3", // Eb F
  C: "[bb2,eb3,g3,bb3]@20 ~@4 [bb2,eb3,g3,bb3]@21 ~@3", // Eb
  D: "[bb2,eb3,g3,bb3]@6 [bb2,eb3] ~ [f2,f3,a3,c4]@7 ~, ~@18 [g3,bb3] ~@29", // Eb Eb5 F Gm
  E: "[bb2,eb3,g3,bb3]@15 ~@3 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@18 ~@6", // Eb F
  F: "[eb3,g3,bb3]@21 ~@3 [bb2,d3,f3]@16 ~@2 [bb2,d3] ~@5, ~@21 f3 ~@2", // Eb Bb
  G: "[f2,a2,c3]@13 ~@5 [f2,a2,c3]@6 ~@3 [f3,a3,c4]@2 ~@7 [f2,a2,c3]@6 [f3,a3,c4]@3 ~@3", // F
  H: "[eb3,g3,bb3]@10 ~@2 [bb2,d3,f3]@11 ~", // Eb Bb
  I: "[eb3,g3,bb3]@6 ~@3 [eb3,g3,bb3]@6 ~@3 [d3,f3]@2 ~@4 [bb2,d3,f3]@21 ~@3, ~@18 bb3 ~@29", // Eb Dm Bb
  J: "[eb3,g3,bb3]@20 ~@4 [bb2,d3,f3]@17 ~@7", // Eb Bb
  K: "[[bb2,eb3,g3,bb3]@21 ~@2 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@15 ~@3 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@21 ~@3 [bb2,eb3,g3,bb3]@20 ~@4 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]]/3", // Eb F Eb
  L: "[~@17 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@18 ~@6 [eb3,g3,bb3]@20 ~@4 [f3,a3,c4]@21 ~@3 [d3,f3,bb3]@22 ~@2 [d3,f3,bb3]@10 ~@2 [f3,a3,c4]@9 ~@3 [eb3,g3,bb3]@20 ~@4 [f3,a3,c4]@21 ~@3 [d3,f3,bb3]@22 ~@2 [d3,f3,bb3]@10 ~@2 [f3,a3,c4]@9 ~@3 [eb3,g3,bb3]@20 ~@4 [f3,a3,c4]@21 ~@3 [bb2,d3,f3]]/6", // Eb F Eb F Bb F Eb F …
  M: "[~@5 [bb2,d3,f3]@2 ~@4 [bb2,d3,f3]@2 ~@4 [bb2,d3,f3]@2 ~@4 [bb2,d3,f3]@2 ~@4 [bb2,d3,f3]@2 ~@4 [bb2,d3,f3]@2 ~@4 [bb2,d3,f3]@3 ~@3 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@15 ~@3 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@21 ~@3 [bb2,eb3,g3,bb3]@20 ~@4 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@15 ~@3 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@18 ~@6 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@15 ~@3 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@21 ~@3 [eb3,g3,bb3]]/7", // Bb Eb F Eb F Eb F Eb
  N: "[~@23 [bb2,d3,f3]@5 ~@19 [f2,a2,c3]@6 ~@42 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@15 ~@3 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@21 ~@3 [eb3,g3,bb3]@5 ~@19 [bb2,d3,f3]@5 ~@19 [f2,a2,c3]@6 ~@42 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@21 ~@3 [bb2,eb3,g3,bb3]@15 ~@3 [bb2,eb3,g3,bb3] ~@5 [f2,f3,a3,c4]@21 ~@3 [eb3,g3,bb3]]/8", // Bb F Eb F Eb Bb F Eb …
  O: "[~@23 [bb2,d3,f3]@5 ~@19 [f2,a2,c3]@6 ~@42 [bb2,d3,f3]@97]/4", // Bb F Bb
})).s("gm_piano").gain(0.45)

// chords · piano
const piano_2 = note(`<
  ~ A B C D E F G H I J G H ~ A B E F G H I J G H I K@3 L@6 M@7 ~ N@3 ~ N@3 ~ N@3 ~ N@3 ~@5
>`.pickRestart({
  A: "[eb3,g3]@6 ~@3 [eb3,g3]@9 [d3,f3]@3 ~@3 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@7 ~@2", // Eb Dm Eb Dm
  B: "[eb3,g3]@6 ~@3 [eb3,g3]@8 ~ [d3,f3]@4 ~@2 [f3,a3]@21 ~@3", // Eb Dm F
  C: "[eb3,g3]@7 ~@2 [eb3,g3]@9 f3@6 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@8 ~, ~@6 d3 ~@9", // Eb Dm
  D: "[eb3,g3]@6 ~@3 [eb3,g3]@9 f3@6 [f3,a3]@20 ~@4, ~@6 d3 ~@9", // Eb F
  E: "[eb3,g3]@6 ~@3 [eb3,g3]@9 f3@6 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@9, ~@6 d3 ~@9", // Eb Dm
  F: "[eb3,g3]@6 ~@3 g3@9 [d3,f3]@3 ~@3 [f3,a3]@20 ~@4, ~@9 eb3@5 ~@34", G: "~@14 bb2 ~",
  H: "~@8 [a2,c3,f3] ~ [a2,c3,f3] ~@5", I: "~@21 bb2 ~@2", J: "~@15 [bb2,d3,f3]@6 [bb2,d3,f3]@2 ~",
  K: "[[eb3,g3]@6 ~@2 [eb3,g3]@9 [d3,f3]@3 ~@3 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@7 ~@2 [eb3,g3]@6 ~@3 [eb3,g3]@8 ~ [d3,f3]@4 ~@2 [f3,a3]@21 ~@3 [eb3,g3]@6 ~@3 [eb3,g3]@9 f3@6 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@9 [eb3,g3], ~@113 d3@3 ~@28]/3", // Eb Dm Eb Dm Eb Dm F Eb …
  L: "[~@8 g3@9 [d3,f3]@3 ~@3 [f3,a3]@20 ~@4 eb2@22 ~@2 f2@22 ~@2 bb1@21 ~@3 bb1@9 ~@3 f1@9 ~@3 eb2@22 ~@2 f2@22 ~@2 bb1@21 ~@3 bb1@11 ~ f1@10 ~@2 eb2@22 ~@2 f2@22 ~@2 bb1, ~@8 eb3@5 ~@275]/6", // Dm F
  M: "[~@5 bb1@2 ~@4 bb1@2 ~@4 bb1@2 ~@4 bb1@2 ~@4 bb1@2 ~@4 bb1@2 ~@4 bb1@3 ~@3 [eb3,g3]@6 ~@3 [eb3,g3]@9 [d3,f3]@3 ~@3 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@7 ~@2 [eb3,g3]@6 ~@3 [eb3,g3]@8 ~ [d3,f3]@4 ~@2 [f3,a3]@21 ~@3 [eb3,g3]@6 ~@3 [eb3,g3]@9 f3@6 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@9 [eb3,g3]@6 ~@3 g3@9 [d3,f3]@3 ~@3 [f3,a3]@20 ~@4 [eb3,g3]@6 ~@3 [eb3,g3]@9 [d3,f3]@3 ~@3 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@7 ~@2 [eb3,g3]@6 ~@3 [eb3,g3]@8 ~ [d3,f3]@4 ~@2 [f3,a3]@21 ~@4, ~@161 d3@3 ~@36 eb3@5 ~@131]/7", // Eb Dm Eb Dm Eb Dm F Eb …
  N: "[~@47 [eb3,g3]@6 ~@3 [eb3,g3]@9 [d3,f3]@3 ~@3 [eb3,g3]@2 ~@4 [eb3,g3]@2 ~@4 [eb3,g3]@3 [d3,f3]@7 ~@2 [eb3,g3]@6 ~@3 [eb3,g3]@8 ~ [d3,f3]@4 ~@2 [f3,a3]@21 ~@4]/3", // Eb Dm Eb Dm Eb Dm F
})).s("gm_piano").gain(0.45)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~ A B A B A B ~@3 C ~@3 A B A B ~@3 C ~@3 D@4 ~ E ~ F G@8 H@8 I J@8 K@3 ~
>`.pickRestart({
  A: "[eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~, ~@36 bb3 ~@11", // Eb Bb Eb Bb
  B: "[eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@3", // Eb Bb F
  C: "[eb3,g3,bb3]@6 ~@3 [eb3,g3,bb3]@7 ~@2 [d3,f3,a3]@4 ~@2 [bb2,d3,f3]@19 ~@5", // Eb Dm Bb
  D: "[[eb3,g3,bb3]@7 ~ [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@3 [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@4, ~@35 bb3 ~@95 bb3 ~@60]/4", // Eb Bb Eb Bb Eb Bb F Eb …
  E: "~@23 [bb2,d3,f3]@10 ~@2 [a2,c3,f3]@9 ~@4", F: "~@23 [bb2,d3,f3]@9 ~@3 [f3,a3,c4]@9 ~@4",
  G: "[~@47 bb2@5 ~ bb2@5 ~ bb2@6 bb2@4 ~@2 bb2@5 ~ bb2@5 ~ bb2@6 bb2@4 ~@2 [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@3 [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@3 [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@3 eb3, ~@131 bb3 ~@95 bb3 ~@95 bb3 ~@60]/8", // Eb Bb Eb Bb Eb Bb F Eb …
  H: "[~@23 bb2@4 ~@20 f2@44 ~@4 [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@3 eb3@5 ~@19 bb2@4 ~@20 f2@44 ~@4 [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@3 eb3, ~@131 bb3 ~@191 bb3 ~@60]/8", // Eb Bb Eb Bb Eb Bb F Eb …
  I: "~@2 f3@6 bb3@9 f3@6 db3@3 d3@5 ~ bb3@9 d3@5 ~ f2",
  J: "[~@2 f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@2 ~ f2@3 f2@3 [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@6 f3@6 bb3@9 f3@6 db3@3 d3@6 bb3@9 d3@5 ~ f2@3 f2@3 f2@3 f2@3 f2@3 ~@3 ab2@3 g2@3 f2@6 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~@4 [eb3,g3]@3 [d3,f3,bb3]@8 ~ [eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3,bb3]@3 ~@3 [d3,f3,bb3]@3 ~@3 [f3,a3,c4]@21 ~@3 eb2@2 ~ [f2,f3]@6 [bb2,bb3]@9 [f2,f3]@6 [db2,db3]@2 ~ [d2,d3]@6 [bb2,bb3]@9 [d2,d3]@6 f2, ~@83 bb3 ~@59 eb3@24 bb2@23 ~@16 f2@9 ~@60 bb3 ~@59 eb3@5 ~@19 bb2@3 ~@22]/8", // Eb Bb Eb Bb Eb Bb F Eb …
  K: "[~@2 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@3 f2@6 bb2@97]/3",
})).s("gm_distortion_guitar").gain(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A B C D E F ~ G H I ~ J K A B E F ~ J H I ~ G L M@8 N@8 ~ O@3 ~ P@4 O@3 ~ O@3 ~ Q ~@3
>`.pickRestart({
  A: "[eb3,g3,bb3]@7 ~@2 eb3@2 ~ [eb3,bb3]@5 ~ [d3,f3]@5 ~ [eb3,g3,bb3]@3 ~@3 [eb3,g3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~ [d3,f3,bb3]@9, ~@3 g3@3 ~@10, ~@9 bb3 ~@8 bb3@3 ~@27", // Eb Eb5 Dm Eb Bb
  B: "[eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3] ~@2 [eb3,g3]@6 [d3,f3,bb3]@6 [f3,a3,c4]@21 ~@3, ~@4 bb3 ~@11", // Eb Bb F
  C: "[eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3]@2 ~ [eb3,g3,bb3]@6 [d3,f3]@6 [eb3,g3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~@4 [eb3,g3,bb3]@2 ~ [d3,f3,bb3]@8 ~, ~@9 bb3 ~@14", // Eb Dm Eb Bb
  D: "[eb3,g3,bb3]@8 ~ [eb3,g3,bb3] ~@2 [eb3,g3]@6 [d3,f3,bb3]@6 [f3,a3,c4]@20 ~@4, ~@4 bb3 ~@11", // Eb Bb F
  E: "[eb3,g3,bb3]@7 ~@2 [eb3,g3,bb3]@2 ~ [eb3,g3,bb3]@6 [d3,f3,bb3]@6 [eb3,g3]@3 ~@3 [eb3,g3,bb3]@3 ~@3 [eb3,g3,bb3]@2 ~ [d3,f3,bb3]@8 ~, ~@24 bb3@5 ~@19", // Eb Bb Eb Bb
  F: "[eb3,g3,bb3]@8 ~ [eb3,g3,bb3]@2 ~ [eb3,g3]@6 [d3,f3,bb3]@6 [f3,a3,c4]@19 ~@5, ~@3 bb3 ~@8", // Eb Bb F
  G: "[f3,f4,a4,c5]@5 ~@4 f3@2 ~ [f4,a4,c5]@3 ~@3 f3 ~@2 f3@6 [f4,a4,c5]@2 ~ f3@2 ~@4 [f3,f4,a4,c5]@3 ~@9", // F
  H: "~@24 [bb2,d3,f3]@19 ~@5", I: "[eb3,g3,bb3]@6 ~@3 [eb3,g3,bb3]@6 ~@3 [d3,f3,bb3]@3 ~@3 [bb2,d3,f3]@19 ~@5",
  J: "[f3,f4,a4,c5]@6 ~@3 f3@2 ~ [f4,a4,c5]@3 ~@3 f3 ~@2 f3@6 [f4,a4,c5]@2 ~ f3@2 ~@4 [f3,f4,a4,c5]@3 ~@9", // F
  K: "[eb4,g4]@3 ~@3 [eb4,g4] ~@2 [bb3,eb4,g4]@2 ~@4 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,d4,f4]@2 ~@10 bb4@3 ~@9, bb3@5 ~@43", // Eb Bb
  L: "[eb4,g4]@3 ~@3 [eb4,g4] ~@2 [bb3,eb4,g4]@2 ~@4 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,d4,f4]@2 ~@10 bb4@3 ~@3 bb3@2 ~ [d4,f4,bb4]@3, bb3@5 ~@43", // Eb Bb
  M: "[[eb4,g4]@2 [d4,f4,bb4]@2 ~ bb3@3 [eb3,bb3]@3 [eb3,bb3]@6 bb3@3 [d4,f4]@3 [eb3,g3,bb3,eb4,g4]@3 [d4,f4,bb4]@2 ~ [eb3,g3]@3 ~@3 [eb3,g3,bb3]@3 [d3,f3,bb3]@6 [d4,f4]@3 [eb4,g4]@3 [d4,f4,bb4]@3 [eb4,g4,bb4]@3 [eb3,g3,bb3,bb4] ~@2 [bb3,eb4,g4,bb4]@3 [d4,f4,bb4]@2 ~ [d3,f3,bb3]@6 [f3,a3,c4]@21 [d4,f4,bb4]@3 [g4,bb4]@2 ~ [d4,f4,bb4]@2 ~ bb3@3 [eb3,bb3]@3 [eb3,g3,bb3]@6 ~@3 [d4,f4,bb4]@2 ~ [eb3,g3,eb4,g4,bb4]@3 [d4,f4,bb4]@2 ~ [eb3,g3]@3 ~@3 [eb3,g3,bb3]@2 ~ [d3,f3,bb3]@6 [d4,f4]@3 [eb4,g4,bb4]@3 [d4,f4]@3 [eb4,g4]@3 [eb3,bb3,d4,f4]@3 [bb3,g4]@3 [d4,f4,bb4]@2 ~ [d3,f3,bb3]@6 [f3,a3,c4]@19 ~@5 [eb3,g3,bb3]@6 [c3,eb3,g3]@6 [eb3,g3,bb3]@6 [g3,bb3,d4]@6 [f3,a3,c4]@5 ~ [c3,f3,a3]@6 [f3,a3,c4]@6 [a3,c4,eb4]@5 ~ [f3,bb3,d4]@6 [d3,f3,bb3]@6 [f3,bb3,d4]@6 [bb3,d4,f4]@6 [f3,bb3,d4,bb4]@12 [d3,a3,c4,a4]@11 ~ [eb3,g3,bb3]@6 [c3,eb3,g3]@6 [eb3,g3,bb3]@6 [g3,bb3,d4]@6 [f3,a3,c4]@5 ~ [c3,f3,a3]@6 [f3,a3,c4]@6 [a3,c4,eb4]@5 ~ [f3,bb3,d4]@6 [d3,f3,bb3]@6 [f3,bb3,d4]@6 [bb3,d4,f4]@6 [f3,bb3,d4,bb4]@12 [d3,a3,c4,a4]@11 ~ [eb3,g3,bb3], [eb3,g3]@8 g3@9 [d3,f3]@5 ~@7 bb3@6 ~@12 [eb3,g3,bb3]@8 ~@4 [eb3,g3]@7 ~@29 [eb3,g3,bb3]@7 ~@2 g3 ~@8 [d3,f3,bb3]@6 ~@6 bb3@6 ~@12 [eb3,g3,bb3]@8 ~ [g3,bb4] ~@2 [eb3,g3]@7 ~@222, bb3@5 [d4,bb4]@15 ~@9 [d4,bb4]@15 ~@12 [d4,f4]@3 ~@6 [f4,a4,c5]@24 ~@6 eb4 ~@5 [d4,bb4]@15 ~@3 bb3@5 ~ [d4,bb4]@14 ~@16 [eb4,bb4]@2 ~@4 [f4,a4,c5]@24 ~@199, bb4 ~@19 bb4 ~@2 bb4 ~@20 bb4 ~@2 bb4 ~@92 bb4@2 ~@4 bb4 ~@2 bb4@2 ~@233]/8", // Eb Bb Eb5 Dm Eb Bb Eb Bb …
  N: "[~@5 [c3,eb3,g3]@6 [eb3,g3,bb3]@6 [g3,bb3,d4]@6 [f3,a3,c4]@5 ~ [c3,f3,a3]@6 [f3,a3,c4]@6 [a3,c4,eb4]@5 ~ bb3@2 ~@4 bb3@2 ~@4 bb3@2 ~@4 bb3@2 ~@4 bb3@2 ~@4 bb3@2 ~@4 bb3@2 ~@4 bb3@3 ~@3 [db4,a4]@3 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [db4,e4] ~@2 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [db4,e4] ~@2 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [db4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~@2 d4@3 [f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [db4,a4]@3 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [e4,a4]@3 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [db4,e4,a4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [db4,a4]@3 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~@2 [d4,f4]@3 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~@2, ~@95 e4 ~@23 a4@3 ~@21 a4@3 ~@21 e4 ~@11 f4@2 ~@10 e4 ~@23 db4 ~@47 e4 ~@120, ~@179 bb4 ~@101 bb4 ~@102]/8", // Cm Eb Gm F Adim Gbm Bb Dbm …
  O: "[~@23 [f3,a3,c4]@3 ~@3 [f3,a3,c4]@3 ~@3 [f3,a3,c4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4]@6 [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~@2]/3", // F A Bb A Bb A Bb A …
  P: "[~@23 [f3,a3,c4]@3 ~@3 [f3,a3,c4]@3 ~@3 [f3,a3,c4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4]@6 [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ [db4,e4,a4]@3 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]@2 ~ eb4@3 f4@5 ~ bb4@9 f4@6 db4@2 ~ d4@5 ~ bb4@9 d4@4 ~@3]/4", // F A Bb A Bb A Bb A …
  Q: "~@23 [f3,a3,c4]@3 ~@3 [f3,a3,c4]@3 ~@3 [f3,a3,c4]@3 ~ [a3,c4,f4] ~ [a3,c4,f4]@6 ~", // F
})).s("gm_electric_guitar_clean").gain(0.4)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@7 A B C D A B E ~@4 A B C D A B E ~@15 F G@2 ~ F G@2 ~ F G@2 ~ F G@2 ~ F G@2 ~@3
>`.pickRestart({
  A: "bb3 ~@2 bb3 ~@5 bb3@2 ~ bb3 ~@2 bb3@2 ~ bb3 ~@2 bb3@2 ~ bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2",
  B: "f3 ~@2 f3 ~@2 f3 ~@2 f3@2 ~@4 f3@2 ~ f3@2 ~ f3 ~@5 f3 ~@5 f3@2 ~ f3@2 ~ f3 ~@2 f3@2 ~@4",
  C: "bb3@2 ~ bb3 ~@5 bb3@2 ~ bb3@2 ~ bb3@2 ~@4 bb3@2 ~ bb3 ~@2 bb3@2 ~@4 bb3@2 ~ bb3 ~@2 bb3@2 ~ bb3 ~@2 bb3 ~@2",
  D: "bb3 ~@2 bb3 ~@5 bb3@2 ~@4 bb3@2 ~ bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3 ~@5",
  E: "bb3 ~@5 bb3 ~@2 bb3 ~@5 bb3 ~@2 bb3 ~@2 bb3 ~@2 bb3@2 ~@22", F: "~@47 eb3",
  G: "[~@2 eb3 ~@2 eb3@2 ~ eb3 ~@2 eb3@2 ~ eb3 ~@2 eb3@2 ~ eb3 ~@2 bb2@2 ~ bb2 ~@2 bb2@2 ~ bb2 ~@2 bb2@2 ~ bb2 ~@2 bb2@2 ~ bb2 ~@2 f2@2 ~ f2 ~@2 f2@2 ~ f2 ~@2 f2@2 ~ f2 ~@2 f2@2 ~ f2 ~@2 f2@2 ~ f2 ~@2 f2@2 ~ f2 ~@2 f2@2 ~ f2 ~@2 f2@2 ~ f2@2 ~@2]/2",
})).s("gm_electric_guitar_muted").gain(0.4)

// other · electric guitar muted · soft notes
const electric_guitar_muted_2 = note("<~@7 A B C ~ A B D ~@4 A B C ~ A B D ~@37>".pickRestart({
  A: "~@6 bb3 ~@41", B: "~@24 f3 ~@5 f3 ~@17", C: "~@6 bb3 ~@11 bb3 ~@11 bb3 ~@17", D: "~@3 bb3 ~@8 bb3 ~@35",
})).s("gm_electric_guitar_muted").gain(0.25)

// other · orchestra hit
const orchestra_hit = note("<~@24 [~@36 bb4@5 ~@7] ~@37>").s("gm_orchestra_hit").gain(0.5)

// other · overdriven guitar
const overdriven_guitar = note("<~@35 A B C@2 ~@19 D@4>".pickRestart({
  A: "~@11 a5@4 ~@20 a5@4 ~@9", B: "~@11 a5@5 ~@19 a5@5 ~@8", C: "~@11 a5@5 ~@19 a5@4 ~@9",
  D: "[~@47 [bb2,f3]@98 ~@47]/4", // Bb5
})).s("gm_overdriven_guitar").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@2 B A@3 C D C E C D C A@4 C D C E C D C F G@3 H I H I H J G@6 H K G@2 H K G@2 H K G@2 H K G@2 H K ~@3
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x ~@4", C: "x!2", D: "x ~@6 x!2 ~ x ~@5", E: "x ~@2 x ~ x ~@2",
  F: "x ~@16 x ~@5 x ~@23 x", G: "~@17 x ~@5 x ~@23 x", H: "~@23 x ~@23 x", I: "~@17 x ~@5 x ~@11 x ~@11 x",
  J: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x", K: "~@41 x ~@5 x",
})).gain(0.72)

// drums · rim
const rim = s("rim").struct("<[~ x ~ x] ~@61>").gain(0.48)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@5 B A@10 B A@7 C@3 D C E C E C F C@3 D C@2 G ~ C@2 G ~ C@2 G ~ C@2 G ~ C@2 G H ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@4 x", C: "~@11 x ~@23 x ~@12", D: "~@11 x ~@29 x ~@6", E: "~@11 x ~@36",
  F: "~@11 x ~@20 x ~@2 x ~@12", G: "~@23 x ~@23 x", H: "~@35 x ~@2 x ~@2 x ~@2 x ~@3",
})).gain(0.72)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@30 A ~ A ~ B ~@5 C D ~@2 C D ~@2 C D ~@2 C E ~@2 C E ~@4>".pickRestart({
  A: "~@19 x!2 ~ x!2 ~@24", B: "~@41 x ~@6", C: "~@41 x ~ x ~ x ~@2", D: "~@19 x!2 ~ x ~@20 x!2 ~ x ~",
  E: "~@18 x ~ x!2 ~@20 x ~ x!2 ~@2",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<~@43 [~@11 x ~@23 x ~@12]!2 ~@2 [~@11 x ~@23 x ~@12]!2 ~@2 [~@11 x ~@23 x ~@12]!2 ~@9>")
  .gain(0.72)

// drums · low tom
const low_tom = s("lt").struct("<~@42 A ~@3 B ~@3 A ~@3 B ~@3 A ~ C ~>".pickRestart({
  A: "~@33 x ~ x ~@12", B: "~@38 x ~@2 x ~@6", C: "~@46 x!2",
})).gain(0.64)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@34 A ~@7 B ~@3 C ~@3 B ~@3 C ~@3 B ~ D ~>".pickRestart({
  A: "~@35 x ~@5 x ~@2 x ~@3", B: "~@15 x ~@7 x ~@24", C: "~@11 x ~@8 x ~@8 x ~@5 x ~@12", D: "~@22 x!2",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A ~ A ~@8 B ~ A ~@8 B ~ C ~@6 D E ~ C ~@3 C ~@3 C ~@3 C ~@3 C ~@3 C ~@5
>`.pickRestart({
  A: "~@7 x", B: "~ x", C: "~@41 x ~@6", D: "~@47 x", E: "~@11 x ~@11 x ~@24",
})).gain(0.72)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@8 A ~@3 A ~@6 A ~@3 A ~@38>".pickRestart({
  A: "~@7 x",
})).gain(0.32)

// drums · high tom
const high_tom = s("ht").struct("<~@34 A ~@7 B ~@3 C ~@3 B ~@3 C ~@3 B ~@3>".pickRestart({
  A: "~@2 x", B: "~@5 x ~@42", C: "~@2 x ~@20 x ~@24",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@5 A ~@6 A ~@3 A ~@6 A ~@2 B ~ C ~ C ~ B ~@3 B ~@3 D ~@3 D ~@3 D ~@3 D ~@3 E ~@3
>`.pickRestart({
  A: "x", B: "~@47 x", C: "~@23 x ~@11 x ~@11 x", D: "~@41 x ~@5 x", E: "~@5 x ~@35 x ~@5 x",
})).gain(0.48)
// … 12 more lines

More by Warren Zevon