Strudelify
Halloween cover art

1980 · Before These Crowded Streets

Halloween

Dave Matthews Band

KeyF majorTempo116 bpm
0:00/0:00
// Halloween — Dave Matthews Band
// 116 bpm, 8/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · acoustic guitar steel · "Track01"
const acoustic_guitar_steel = note(`<
  ~ A@3 B@2 A C B A@2 B A D A B A@2 B@3 A B A@2 E F G H I J K L B@5 A B A@4 B M N O P Q R S T U V W X Y Z AA AB C A@2 C
  A@4 E AC G H I J K AD E F AE H AF J K AD E F G H I J K AG AH AI AJ AK AL AM AN AO AP ~@2 AQ ~@3 AR ~@3 AS ~@3 AT ~@3
  AU@2 AV AW AX AY
>`.pickRestart({
  A: "f2@2 ~ [f2,f3]!2 ~ b2 ~ [b2,b3]@2 [c3,c4] ~ [c3,c4]@3 ~", // F B C
  B: "f2@2 ~ [f2,f3]!2 ~ b2 ~ [b2,b3]@2 [c3,c4] ~ [c3,c4]@2 ~@2", // F B C
  C: "f2@2 ~ [f2,f3]!2 ~ [b2,b3] ~ [b2,b3]@2 [c3,c4] ~ [c3,c4]@3 ~", // F B C
  D: "f2@3 [f2,f3]!2 ~ [b2,b3] ~ [b2,b3]@2 [c3,c4] ~ [c3,c4]@3 ~", // F B C
  E: "[a2,e3,a3] ~ [a2,e3,a3]!3 ~ [a2,e3,a3]!3 [a3,e4] a3 e3 [a2,e3,a3,e4] a3 [a2,e3]!2", // A5
  F: "[g2,d3,g3,d4]@2 [g2,d3,g3] [d3,g3] [g2,d3,g3] ~ [g2,d3,g3]!2 ~ g3 [g2,d3,g3,d4] g3 [g2,d3] [g2,d3,g3,d4] g3 [g2,d3], ~@4 [g2,d3,g3] ~@3", // G5
  G: "[f2,c3,f3]@2 [f2,c3,f3] [c3,f3] [f2,c3,f3,c4] ~ [c3,f3] [f2,c3,f3] [f2,c3,c4] f3 [f2,c3] [f2,c3,f3,c4] [c3,f3] [f2,c3] [f2,c3,f3,c4] ~", // F5
  H: "[e2,b2,e3] ~ [e2,b2,e3]!3 ~@2 b2 ~@2 [e2,b2]!2 [e3,b3] [e2,b2] [e3,b3] ~, ~@6 [e3,b3]@2 ~ [e3,b3]@2 ~@5", // E5
  I: "[a2,e3] ~ [a2,e3,a3] [e3,a3] [a2,e3,a3]@2 [e3,a3] [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3] [e3,a3] [a2,e3,a3] ~ [e3,a3]!2", // A5
  J: "[g2,d3,g3] [d3,g3] [g2,d3,g3] [d3,g3] [g2,d3,g3] ~ [d3,g3]!2 [g2,d3,g3,d4] g3 d3 [g2,d3,g3,d4] g3 d3 [g2,d3,g3,d4] ~", // G5
  K: "[f2,c3,f3] ~ [f2,c3] [c3,f3] [f2,c3,c4] f3 [c3,f3] c3 [f2,c3,f3,c4] f3 c3 [f3,c4] [f2,c3] [f3,c4] [f2,ab2,c3] e3", // F5 Fm
  L: "[e2,b2,e3,b3] ~ [e2,b2,e3] [b2,e3,b3] [e2,b2,e3,b3]@2 [e2,b2,e3,b3] [b2,e3] [e2,b2,e3,b3]@2 [b2,e3] [e2,b2,e3,b3] [e2,b2,e3,b3]@2 ~@2", // E5
  M: "[a2,e3,a3]@2 [e3,a3]!2 [a2,e3,a3]@2 [a2,e3,a3]!2 [a2,e3,a3,e4] a3 [a2,e3,a3] [a2,e3,a3,e4] a3 [a2,e3] [a2,e3,a3,e4] [a2,e3,a3]", // A5
  N: "[g2,d3,g3]@2 [g2,d3,g3]!2 [g2,d3,g3,d4]@2 [g2,d3,g3] g3 [g2,d3,g3,d4] g3 [g2,d3,g3] [g2,d3] [g2,d3,g3,d4] g3 [g2,d3] [g2,d3,g3]", // G5
  O: "[f2,c3,f3,c4]@2 [f2,c3,f3]!3 ~ [c3,f3]!2 [f2,c3,f3] [c3,f3]!3 [f2,c3,f3] ~ [f2,c3,f3] [c3,f3]", // F5
  P: "[e2,b2,e3]!3 [b2,e3] [e2,b2,e3] ~ [b2,e3] [e2,b2,e3] b2 [b2,e3] [e2,b2,e3] [b2,e3] [e2,b2,e3] ~ [b2,e3] ~", // E5
  Q: "[a2,e3,b3]@2 [a2,e3,a3] [e3,a3] [a2,e3,a3] ~ [a2,e3,a3]!3 [a2,e3,b3] [e3,a3]!2 [a2,e3,a3] ~ [a2,e3,a3]!2", // Asus2 A5 Asus2 A5
  R: "[g2,d3,g3] ~ [g2,d3,g3] [d3,g3] [g2,d3,a3] g3 [d3,g3] [g2,d3,g3] ~ [g2,d3,g3] [d3,g3]!2 [g2,d3,g3] ~ [d3,g3] [g2,d3,g3]", // G5 Gsus2 G5
  S: "[f2,c3,f3]@2 [c3,f3]!2 [f2,c3,f3] ~ [c3,f3]!2 [f2,bb2,c3,f3,g3] f3 [c3,f3] [f2,c3,f3] ~ [f2,c3,f3]!2 ~", // F5 Fsus4 F5
  T: "[e2,b2,e3] ~ [b2,e3] ~ [e2,b2,e3] ~ [b2,e3]!2 [e2,b2,e3] ~ [e2,b2,e3] [b2,e3] [e2,b2,e3]@2 ~@2", // E5
  U: "[a2,e3,a3,b3,e4] ~ [a2,e3,a3,b3,e4]!3 ~ [b3,e4]@2 a3 b3 [a3,e4] [a2,e3] [a2,e3,a3,b3,e4]@2 [a2,e3,a3,b3,e4] [a2,e3], ~@3 [a2,e3]@2 ~@3, ~@6 a3 ~@9", // Asus2 E5 A5 Asus2 A5
  V: "[b2,gb3,d4,gb4] ~ [b2,gb3,d4,gb4]!2 [b2,gb3,b3,d4,gb4] ~ [b2,gb3,b3,d4,gb4]@2 ~@2 d4 [gb3,b3] [b2,gb3,b3,d4,gb4] b3 [b2,gb3,b3,d4,gb4] b3, ~@8 [b2,gb3]@3 ~@5, ~@9 [b3,gb4]@2 ~@5", // Bm B5 Bm B5
  W: "[a2,e3,a3,e4]@2 [a2,e3,a3,e4] [a2,e3,e4] [a2,e3,a3,b3,e4] ~ [a2,e3,a3,b3,e4] ~ [a2,e3,a3,b3,e4] ~ a3 [a2,e3] [a2,e3,b3,e4] [a3,e4] [a2,e3]!2, ~@9 [b3,e4]@2 ~@5", // A5 Asus2 A5 Asus2 A5 E5
  X: "[b2,gb3,b3,d4,gb4] ~ [b2,gb3,d4,gb4]!2 [b2,gb3,a3,d4,gb4] ~ [b2,gb3,b3,d4,gb4] ~ [b2,gb3,b3,d4,gb4]!5 [b3,d4] [b2,gb3] ~", // Bm Bm7 Bm B5
  Y: "[a2,e3,a3,e4]@2 [a2,e3,a3,e4]!2 [a2,e3,b3,e4] ~ [a2,e3,a3,e4] ~ [a2,e3,b3,e4] [a2,e3,a3,e4] [a2,e3,a3,b3,e4] [a2,e3,a3,e4] ~ b3 a3 [a2,e3], ~@6 [a2,e3,a3,e4] ~", // A5 Asus2 A5 Asus2 A5 Asus2 A5
  Z: "[b2,gb3,b3,d4,gb4] ~ [b2,gb3,b3,d4,gb4]!2 [b2,gb3,b3,gb4] ~ [b2,gb3,b3,d4,gb4] ~ [b2,gb3,b3,d4,gb4] [b3,d4] [b2,gb3] [b2,gb3,b3,gb4] [b2,gb3,b3,d4,gb4] [b3,d4] [b2,gb3] a3", // Bm B5 Bm B5 Bm B5
  AA: "[a2,e3,a3,e4]@2 [a2,e3,a3,e4] [a2,e3,a3,b3,e4]!2 ~ [a2,e3,a3,b3,e4] ~ [a2,e3,a3,b3,e4]!2 [b3,e4] [a3,e4] ~ [a3,e4] [a3,b3,e4] [a2,e3], ~@6 [a2,e3,b3,e4] ~", // A5 Asus2 E5 A5 Asus2 A5 Asus2
  AB: "[b2,gb3,b3,d4,gb4] ~ [b2,gb3,b3,d4,gb4]!3 ~ [b2,gb3,b3,d4,gb4] ~ [b2,gb3,b3,d4,gb4]!5 ~ [b2,gb3,b3,d4,gb4] ~", // Bm
  AC: "[g2,d3,g3,d4] ~ [g2,d3,g3] [d3,g3] [g2,d3,g3] ~ [g2,d3,g3]!2 ~ g3 [g2,d3,g3,d4] g3 [g2,d3] [g2,d3,g3,d4] g3 [g2,d3], ~@4 [g2,d3,g3] ~@3", // G5
  AD: "[e2,b2,e3,b3] ~ [e2,b2,e3]!3 ~@2 b2 ~@2 [e2,b2]!2 [e3,b3] [e2,b2] [e3,b3] ~, ~@6 [e3,b3]@2 ~ [e3,b3]@2 ~@5", // E5
  AE: "[f2,c3,f3] ~ [f2,c3,f3] [c3,f3] [f2,c3,f3,c4] ~ [c3,f3] [f2,c3,f3] [f2,c3,c4] f3 [f2,c3] [f2,c3,f3,c4] [c3,f3] [f2,c3] [f2,c3,f3,c4] ~", // F5
  AF: "[a2,e3]@2 [a2,e3,a3] [e3,a3] [a2,e3,a3]@2 [e3,a3] [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3] [e3,a3] [a2,e3,a3] ~ [e3,a3]!2", // A5
  AG: "[e2,b2,e3,b3,e4]@2 ~ [e2,b2,e3,b3,e4]@2 [e2,b2,e3,b3,e4] ~@2 [e2,b2,e3,b3,e4]@2 ~ [e2,b2,e3,b3,e4]@2 [e2,b2,e3,b3,e4]@2 ~", // E5
  AH: "[a3,e4]@2 [a2,e3] e3 [a2,e3] ~ [a2,e3]!3 [a3,b3,e4] [a2,e3]!2 [a2,a3,b3,e4]@2 [a2,e3]!2, [a2,e3] ~@3 a3@4 ~@8, ~@2 e4 ~@5", // A5 Asus2 A5 Asus2 A5
  AI: "[g2,d3,g3,d4]@2 d3!2 [g2,d3] ~ [g2,d3]!2 [g2,d3,db4] ~ [g2,d3]!2 [g3,d4]@2 [g2,d3]!2, ~@4 [g3,d4]@4 [g3,d4]@2 ~@2 [g2,d3] ~@3", // G5 G G5
  AJ: "[f2,c3,f3,c4]@2 [f2,c3,f3,c4]!3 ~ [f2,c3,f3,c4] [c3,f3,c4] [f2,c3,f3,c4]@2 [f2,c3,f3,c4]!2 [f2,c3,f3,c4]@2 [f2,c3,f3,c4] [f2,c3]", // F5
  AK: "[e2,b2,e3,b3]@2 ~ [e2,b2,e3,b3]@2 [e2,b2,e3,b3]@2 ~ [e2,b2,e3,b3]@2 ~ [e2,b2,e3,b3]@2 [e2,b2,e3,b3] ~@2", // E5
  AL: "[a2,e3,a3,e4] ~ [a2,e3,a3,e4]!3 ~ [a2,e3,a3,e4]!2 [a2,e3] [a3,e4] [a2,e3]!2 [a3,e4]@2 [a2,e3]!2", // A5
  AM: "[f2,g2,d3,g3,d4] ~ d3!2 [g2,d3,g3,c4,d4] ~ [g2,d3] d3 ~ [g2,d3,g3,d4] d3!2 [g2,d3,g3,d4]@2 [g2,d3]!2", // G7 Gsus4 G5
  AN: "[f2,c3,f3,c4]@2 [f2,c3] c3 [f2,c3,f3,c4] ~ [f2,c3,f3] c3 [f2,c3,f3,c4] [f2,c3]!2 [f2,c3,f3,c4] ~ [f2,c3] [f2,c3,f3,c4] ~", // F5
  AO: "[e2,b2,e3,b3] ~@2 [e2,b2,e3,b3]@2 [e2,b2,e3,b3]@2 ~ [e2,b2,e3,b3]@2 ~ [e2,b2,e3,b3]@2 [e2,b2,e3,b3]@2 ~", // E5
  AP: "[f2,c3,f3,c4]@3 ~@13", AQ: "~@13 [f2,c3,e3,a3,d4,e4]@3", AR: "~@12 d4@3 ~, ~@11 [f2,c3,e3,a3,e4]@4 ~",
  AS: "~@9 [f2,c3,e3,a3,d4,e4]@3 ~@4, ~@9 f3 ~@6", AT: "~@8 d4@3 ~@5, ~@7 [f2,c3,e3,a3,e4]@3 ~@6",
  AU: "[~@4 [f2,c3,e3,a3,d4,e4]@3 ~@3 [f2,c3,e3,a3,d4,e4]@10 [e3,a3,d4,e4] [f2,c3,a3,e4] [f2,c3,e3,d4] [c3,e3,a3,d4,e4] [f2,e3,a3,d4,e4] [f2,c3] [f2,c3,e3,a3,d4,e4] [e3,a3,d4,e4] [f2,c3] [e3,a3,d4,e4] [f2,c3] [f2,c3,e3,a3,d4,e4], ~@4 [b2,db4] ~@27]/2", // Fmaj7 Dsus2 Fmaj7 Am Dm F5 Fmaj7 Dsus2 …
  AV: "[e3,a3,d4,e4] [f2,c3,e3] [f2,c3,a3,d4,e4] [f2,e3,a3,d4,e4] [c3,e3,a3,d4,e4] [f2,c3] [f2,c3,e3,a3,d4,e4] [e3,a3,d4,e4] [f2,c3] [f2,c3,e3,a3,d4,e4] [e3,a3,d4,e4] [f2,c3] [f2,c3,e3,a3,d4,e4] [e3,a3,d4,e4] [f2,c3] [e3,a3,d4,e4]", // Dsus2 Fmaj7 Dm Am F5 Fmaj7 Dsus2 F5 …
  AW: "[f2,c3] [e3,a3,d4,e4] [f2,c3] [e3,a3,d4,e4] [f2,c3] [e3,a3,d4,e4] [f2,c3,e3,a3,d4,e4] [f2,c3] [e3,a3,d4,e4] [f2,c3,e3,a3,d4,e4] [f2,c3] [e3,a3,d4,e4] [f2,c3] [f2,c3,e3,a3,d4,e4] [e3,a3,d4,e4] [f2,c3,d4,e4]", // F5 Dsus2 F5 Dsus2 F5 Dsus2 Fmaj7 F5 …
  AX: "[f2,c3,e3,a3] [e3,a3,d4,e4] [f2,c3] [f2,c3,e3,a3,e4] [e3,a3,d4,e4] [f2,c3,e3,d4,e4] [f2,c3,a3] [e3,a3,d4,e4] [f2,c3,e3,a3,d4,e4] [f2,c3] [f2,c3,e3,a3,d4,e4] e3 [f2,c3] [e3,a3,d4,e4] ~@2", // Fmaj7 Dsus2 F5 Fmaj7 Dsus2 Fmaj7 F Dsus2 …
  AY: "~@2 [f2,c3,e3,a3,d4,e4]@3 ~@11", // Fmaj7
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.2)

// chords · overdriven guitar · "Track02"
const overdriven_guitar = note(`<
  ~ A B@2 C B@2 D C ~@52 E@2 F@2 G E F E ~@32 H ~@2 I ~@3 J ~@3 K ~@3 L ~@3 M@2 N@3 O
>`.pickRestart({
  A: "[f2,c3,f3]@2 ~ [c3,f3]!2 ~ [b2,f3] ~ [b2,f3]@2 [c3,f3] ~ [c3,f3]@2 ~@2", // F5 Bdim F5
  B: "[f2,c3,f3]@2 ~ [f2,c3,f3]!2 ~ [b2,f3] ~ [b2,f3]@2 c3 ~ [c3,f3]@3 ~", // F5 Bdim F5
  C: "[f2,c3,f3]@3 [f2,c3,f3]!2 ~ [b2,f3] ~ [b2,f3]@2 c3 ~ [c3,f3]@3 ~", // F5 Bdim F5
  D: "[f2,c3,f3]@2 ~ [f2,c3,f3] [c3,f3] ~ [b2,f3] ~ [b2,f3]@2 c3 ~ [c3,f3]@3 ~", // F5 Bdim F5
  E: "[f2,f3]@4 ~@2 [b2,b3] ~ [b2,b3]@2 [c3,c4] ~ [c3,c4]@3 ~", // F B C
  F: "[f2,f3]@2 ~ [f2,f3]!2 ~ [b2,b3] ~ [b2,b3]@2 [c3,c4] ~ [c3,c4]@3 ~", // F B C
  G: "[f2,f3]@3 [f2,f3]!2 ~ [b2,b3] ~ [b2,b3]@2 [c3,c4] ~ [c3,c4]@3 ~", H: "[f2,c3,f3]@3 ~@13",
  I: "~@7 [f2,c3], ~@13 f3@3", J: "~@11 [f2,c3,f3]@3 ~@2", K: "~@9 [f2,c3,f3]@3 ~@4", L: "~@7 [f2,c3,f3]@3 ~@6",
  M: "[~@4 [f2,c3,f3]@3 ~@3 [f2,c3,f3]@18 c3 [c3,f3] [f2,c3,f3] [c3,f3]]/2", // F5
  N: "[[c3,f3] c3 [c3,f3] f3 [f2,c3,f3]@17 [f2,c3,f3] f2 ~ f2 f2@21 ~@2, ~@11 c3@12 ~, ~@23 f3@23 ~@2]/3", // F5
  O: "~@2 [f2,c3,f3]@3 ~@11", // F5
})).s("gm_overdriven_guitar").gain(0.3).pan(0.7)

// chords · acoustic guitar steel · "Track03"
const acoustic_guitar_steel_2 = note("<~@9 A@7 B C D E F G H I J ~@101>".pickRestart({
  A: "f2@2 ~ [f2,f3]!2 ~ [c4,f4,a4]!3 ~ [c4,f4,a4]!3 ~@3", // F
  B: "f2@2 ~ f3!2 ~ [b3,f4]!2 [b3,f4,g4,a4] ~ [b3,c4,f4,a4] [c4,f4,a4]!2 ~@3", // Bdim Bm7b5 F
  C: "f2@2 ~ f3 [f2,f3] ~ [b3,f4,a4] [b3,f4] [b3,f4,a4] ~ [c4,f4,a4]!3 ~@3", // F Bm7b5 Bdim Bm7b5 F
  D: "[f2,f3]@2 ~ [f2,f3]!2 ~ [b3,f4,a4]!3 ~ [c4,f4,a4]!2 ~ [c4,f4,a4] ~ [c4,f4,a4]", // F Bm7b5 F
  E: "~@6 [b3,f4,a4]!3 ~ [c4,f4,a4]!2 ~ [c4,f4,a4] ~@2", F: "~@6 [b3,f4,a4]!2 [f4,a4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~",
  G: "~@6 [b3,f4,a4]!2 [f4,a4] ~ [c4,f4,a4]!3 ~@3", H: "[f2,f3]@3 ~@3 [b3,f4,a4]!3 ~ [c4,f4,a4]!3 ~@3",
  I: "[f2,f3]@2 ~@4 [b3,f4,a4]!3 ~ [c4,f4,a4]!3 ~@3", // F Bm7b5 F
  J: "[f2,f3]@3 ~ [b3,f4,a4] ~ [b3,f4,a4]!2 ~ [c4,f4,a4]!2 ~ [c4,f4,a4] ~@3", // F Bm7b5 F
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.8)

// chords · string ensemble 1 · "Track04"
const string_ensemble_1 = note(`<
  A B C@3 D E F@2 G@8 H@3 I G@4 J K L M J K L N O P Q R S T U V T@4 J K W X Y K Z AA AB AC AB AC AD@2 AE AF AG@4 AH AI ~
  AJ AK AL AM AN AO AL AM AP AK AQ AM AR AS AL AM AP AT AU AM AV AT AW AM AX AK AY AM AZ BA BB AM BC BD ~@2 BE ~@3 BF
  ~@3 BG ~@3 BH ~@3 BI@5 BJ
>`.pickRestart({
  A: "~@15 c6", B: "b5@3 ~ a5 ~ a5 ~ g5@3 ~ f5 ~ f5 ~",
  C: "[e5@5 ~ a4 ~@15 b4@22 ~@3 [c5,c6], ~@2 f4@9 ~, ~@4 a4@7 ~]/3", // C
  D: "[b4,b5]@3 ~ [a4,a5] ~ [a4,a5] ~ [g4,g5]@3 ~ [f4,f5] ~ [f4,f5] ~", // B A G F
  E: "[e4,e5]@3 ~ [d4,d5] ~ [d4,d5] ~ [c4,c5]@3 ~ [b3,b4] ~ [b3,b4] ~", // E D C B
  F: "[[a3,a4]@2 ~ [f3,f4]!2 ~ [f3,f4] ~ [f3,f4]@23 ~]/2", // A F
  G: "[f2,f3]@4 ~@2 [b4,b5] ~ [b4,b5]@2 [c5,c6] ~ [c5,c6]@2 ~@2", // F B C
  H: "[f2,c3,f3]@4 ~@2 [b4,b5] ~ [b4,b5]@2 [c5,c6] ~ [c5,c6]@2 ~@2", // F5 B C
  I: "[f2,c3,f3]@3 ~@3 [b4,b5] ~ [b4,b5]@2 [c5,c6] ~ [c5,c6]@2 ~@2, e3 ~@15", // F5 B C
  J: "[a3,a4,e5]!2 ~@2 [a3,a4,e5]!2 ~@2 [a3,a4,e5]!2 ~@2 [a3,a4,e5]!2 ~@2", // A5
  K: "[g3,g4,d5]!2 ~@2 [g3,g4,d5]!2 ~@2 [g3,g4,d5]!2 ~@2 [g3,g4,d5]!2 ~@2", // G5
  L: "[f3,f4,c5]!2 ~@2 [f3,f4,c5]!2 ~@2 [f3,f4,c5]!2 ~@2 [f3,f4,c5]!2 ~@2", // F5
  M: "[e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~@2", // E5
  N: "[e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~ [c5,c6]", // E5 C
  O: "[b4,b5]@3 ~ [a4,a5] ~ [a4,a5] ~ [g4,g5]@4 [f4,f5]@4", P: "[e4,e5] [d4,d5] [c4,c5] [b3,f4,b4,f5], ~ [f4,f5]@2 ~",
  Q: "[b3,e4,b4,e5]@3 [e3,b3,e4,b4]!2 ~ [e3,b3,e4,b4] ~ [e3,b3,e4,b4]@8", R: "[f3,c4] [g3,d4] [a3,d4] [b3,e4]",
  S: "[f2,f3]@3 ~@3 [b4,b5] ~ [b4,b5] ~ [c5,c6] ~ [c5,c6] ~@3, e3 ~@15", // F B C
  T: "[f2,f3]@3 ~@3 [b4,b5] ~ [b4,b5] ~ [c5,c6] ~ [c5,c6] ~@3", // F B C
  U: "[f2,f3]@4 ~@2 [b4,b5] ~ [b4,b5] ~ [c5,c6] ~ [c5,c6] ~@3, g2 ~@15", // F B C
  V: "[f2,f3]@3 b4 ~@2 [b4,b5] ~ [b4,b5] ~ [c5,c6] ~ [c5,c6] ~@3", // F B C
  W: "[f3,f4,c5] [f3,c5] ~@2 [f3,f4,c5] [f4,c5] ~@2 [f3,f4,c5]!2 ~@2 [f3,f4,c5] [f4,c5] ~@2", // F5
  X: "[e3,e4,b4] [e3,b4] ~@2 [e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~@2 [ab3,e4,b4]!2 ~@2", // E5 E
  Y: "[g3,a3,a4,e5] [a3,a4,e5] ~@2 [a3,a4,e5]!2 ~@2 [a3,a4,e5]!2 ~@2 [a3,a4,e5]!2 ~@2", // A7 A5
  Z: "[f3,f4,c5]!2 ~@2 [f3,f4,c5]!2 ~@2 [f3,f4] [f3,f4,c5] ~@2 [f3,f4,c5]!2 ~@2", // F5 F F5
  AA: "[e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~@2 [e3,e4,b4]!2 ~@2 [ab3,e4,b4]!2 ~@2", AB: "[a2,a3]", AC: "[b2,b3]",
  AD: "[[a2,a3]@15 [b2,b3]@16 ~]/2", AE: "[a2,a3,a4]", AF: "[b2,b3,b4]@15 ~",
  AG: "[[f3,c4,c5,b5]@3 ~@4 [c5,c6] [b4,b5] ~ [c5,c6] ~@13 b3@2 a3 ~ a3@33 ~@3, a5 ~@11 [c5,c6]@49 ~@3]/4", // F C B C
  AH: "[f2,f3,c5,b5,c6]@3 ~@13", // F
  AI: "[f4,b4,c5,e5]@2 ~@2 [f2,f3]@2 ~@2 [f4,b4,c5,d5,e5] [f4,b4,c5,e5]!3 [f4,b4,c5,e5]@2 ~@2, d5 ~@11 d5 ~@3", // Fmaj7 F Bdim Fmaj7
  AJ: "~@8 [f4,b4,c5,e5]!4 [f4,b4,c5,e5]@2 ~@2, ~@12 bb4 ~@3", // Fmaj7
  AK: "[a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,e5]!2 ~@2", // A5
  AL: "[g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2", // C
  AM: "[f2,f3,f4,e5]!2 ~@2 [f2,f3,f4,e5]!2 ~@2 [f2,f3,f4,e5]!2 ~@2 [f2,f3,f4,e5]!2 ~@2", // Fmaj7
  AN: "[e2,e3,e4,e5]!2 ~@2 [e2,e3,e4,e5]!2 ~@2 [e2,e3,e4,e5]!2 ~@2 [e4,e5]!2 ~@2, ~@6 [ab2,ab3] ~", // E Ab
  AO: "[a2,a3,a4,e5,f5] [a2,a3,a4,e5] ~@2 [a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,e5]!2 ~@2", // Fmaj7 A5
  AP: "[e2,d3,e3,e4,e5] [e2,e3,e4,e5] ~@2 [e2,e3,e4,e5]!2 ~@2 [e2,e3,e4,e5]!2 ~@2 [e4,e5]!2 ~@2, ~@6 [ab2,ab3] ~", // E7 E Ab
  AQ: "[g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5] [g2,a2,g3,g4,e5] ~@2 [g2,g3,g4,eb5,e5] [g2,g3,g4,e5] ~@2 [g2,g3,g4,e5]!2 ~@2", // C A7 C
  AR: "[e2,e3,e4,e5]!2 ~@2 [e2,e3,e4,e5]!2 ~@2 [e2,e3,e4,e5]!2 ~@2 [e4,e5]!2 e5 ~, ~@6 [ab2,ab3] ~", // E Ab
  AS: "[a2,g3,a3,a4,e5] [a2,a3,a4,e5] ~@2 [a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,eb5,e5] [a2,a3,a4,e5] ~@2 [a2,a3,a4,e5]!2 ~@2", // A7 A5 A A5
  AT: "[a2,g3,a3,a4,e5] [a2,a3,a4,e5] ~@2 [a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,e5]!2 ~@2", // A7 A5
  AU: "[g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,f3,g3,g4,e5] [g2,g3,g4,e5] ~@2 [g2,g3,g4,e5]!2 ~@2", // C
  AV: "[e2,e3,e4,f4,e5] [e2,e3,e4,e5] ~@2 [e2,e3,e4,e5]!2 ~@2 [e2,e3,e4,e5]!2 ~@2 [e4,e5]!2 ~@2, ~@6 [ab2,ab3] ~", // Fmaj7 E Ab
  AW: "[g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,eb5,e5] [g2,g3,g4,e5] ~@2", // C
  AX: "[e3,e4,e5]@2 ~ [g3,g5]@2 [a3,a4,a5]@2 ~ [a3,a4] ~@2 [c4,c5,c6]@2 [d4,d5,d6]@2 ~, ~@3 g4 ~@4 a5@2 ~@6", // E G A C D
  AY: "[g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,f3,g3,g4,e5] [g2,g3,g4,e5] ~@2", // C
  AZ: "[e2,e3,e4,e5]@15 ~", // E
  BA: "[a2,a3,g4,a4,eb5,e5] [a2,a3,a4,e5] ~@2 [a2,a3,a4,e5]!2 ~@2 [a2,a3,a4,eb5,e5] [a2,a3,a4,e5] ~@2 [a2,a3,a4,eb5,e5] [a2,a3,a4,e5] ~@2", // A7 A5 A A5 A A5
  BB: "[g2,a2,g3,g4,e5] [g2,g3,g4,e5] ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2 [g2,g3,g4,e5]!2 ~@2", // A7 C
  BC: "[e2,e3,e4,b4,e5]@15 [a2,b2]", BD: "[f2,f3,f5] ~@7", BE: "~@7 c3, ~@13 [f2,f3,f5]@3", BF: "~@11 [f2,f3,f5]@3 ~@2",
  BG: "~@9 [f2,f3,f5]@3 ~@4", BH: "~@7 [f2,f3,f5]@3 ~@6", BI: "[~@4 [f2,f3,f5]@3 ~@3 [f2,f3,f5]@68 ~@2]/5",
  BJ: "~@2 [f2,f3,f5]@3 ~@11", // F
})).s("gm_string_ensemble_1").gain(0.56)

// bass · electric bass finger · "Track07"
const bass = note(`<
  ~ A B A@3 C@2 D E@5 F E@8 G E H I J K L M N O D C@2 P E@4 Q E@3 L M N R L M N O S T U V W X Y Z C@2 AA E AB C@2 AB L M
  N AC AD M N AE L AF N AG L AH N AG AI AH J R L AH J AJ L M J AK L AH J AL AM ~@2 AN ~@3 AO ~@3 AP ~@3 AQ ~@3 AR@2 AS
  AT AU AV
>`.pickRestart({
  A: "f1@2 ~ f1 f2 ~ b1 ~ b1@2 c2 ~ c2@4", B: "f1@2 ~@2 f2 ~ b1 ~ b1@2 c2 ~ c2@3 ~, ~@3 f1@2 ~@11",
  C: "f1@4 f2@2 b1 ~ b1@2 c2 ~ c2@4", D: "f1@4 f2 ~ b1 ~ b1@2 c2 ~ c2@3 ~, ~@12 b1 ~@3",
  E: "f1@4 ~@2 b1 ~ b1@2 c2 ~ c2@3 ~", F: "f1@4 ~@2 b1@2 b1 ~ b1 f2 c2@4", G: "~ f1@4 ~ b1 ~ b1@2 c2 ~ c2@3 ~",
  H: "a1@3 ~ a1@3 ~ a1@6 a1@2", I: "g1@3 ~ g1@3 ~ g1@3 d2 g1@3 ~", J: "f1 ~ f1 ~ f1 ~ f1 ~",
  K: "e1@3 ~ e1@2 ~@2 e1 ~ b1@2 e2@2 ab1@2", L: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~", M: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~",
  N: "f1@3 ~ f1@3 ~ f1@3 ~ f1@3 ~", O: "e1@3 ~ e1@3 ~ e1@3 ~ e1@3 ~", P: "f1@4 f2@2 b1@2 c2 ~ c2@2 c2@2 b1@2",
  Q: "f1@4 ~@2 b1 ~ b1@2 b1@2 c2@3 ~", R: "e1@3 ~ e1@3 ~ e1@2 ~@2 ab1@3 ~", S: "~@2 e2 a2@2 e2@3, a1@3 ~@5",
  T: "~@3 gb2@2 b2 gb2 e2, b1@15 ~", U: "~@2 e2 a2@2 ~@2 b1, a1@7 ~, ~@5 e2@3", V: "~@2 gb2 b2@2 gb2@2 e2, b1",
  W: "~@2 e2 a2@2 ~@2 a1, a1@13 ~@3, ~@5 e2@3", X: "~@4 gb2@5 b2@3 gb2@4, b1", Y: "a1@5 a1@4 ~ a1@2 a1@2 a1@2",
  Z: "b1@2 b1!3 ~ b1 ~ b1 ~ b1!2 b1@2 b1@2", AA: "f1@3 ~ f2 ~ b1 ~ b1@2 c2 ~ c2@3 ~",
  AB: "f1@5 ~ b1 ~ b1@2 c2 ~ c2@3 ~", AC: "e1@3 ~ e1@2 ~@2 e1@2 ~@3 g1 ~@2, ~@12 ab1@3 ~",
  AD: "~ a1@3 a1@3 ~ a1@2 ~@2 a1@2 ~@2", AE: "e1@3 ~ e1@3 ~ e1@3 ~ ab1@3 ~", AF: "g1@3 ~ g1@3 ~ g1 ~ g1@3 ~ g1 ~",
  AG: "e1@2 ~@2 e1@3 ~ e1@3 ~ e1@2 ab1@2", AH: "g1 ~ g1 ~ g1 ~ g1 ~", AI: "a1@3 ~ a1@3 ~ a1@2 ~@2 a1@2 ~@2",
  AJ: "e2@2 ~ d2@2 c2@3 b1@3 a1@2 ab1@2 ~", AK: "e2@3 d2@2 c2@3 b1@3 a1@2 ab1@2 ~",
  AL: "e2@3 d2@2 c2@3 b1@3 a1@2 ab1@2 f1, ~@5 b1 ~@10", AM: "f1@3 ~@13", AN: "~@7 f1", AO: "~@11 f1@3 ~@2",
  AP: "~@9 f1@3 ~@4", AQ: "~@7 f1@3 ~@6", AR: "[~@4 f1@4 ~@2 f1@12 f1 ~ f1!2 ~ f1@2 [g1,a1,b1] ~ [c2,d2,e2]]/2",
  AS: "~ f2@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2", AT: "~ f2 ~ f1@5 f1@2 ~ f1@2 f1@2 ~", AU: "f1@3 ~ f1@11 ~",
  AV: "~ f1 ~@6",
})).s("gm_electric_bass_finger").gain(0.56)

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

More by Dave Matthews Band