Strudelify

Typical Situation

Dave Matthews Band

KeyG majorTempo100 bpm
0:00/0:00
// Typical Situation — Dave Matthews Band
// 100 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 167 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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 · acoustic guitar steel · "Guitar-1"
const acoustic_guitar_steel = note(`<
  A@7 B@16 C@2 D@8 E@8 F@6 C@2 G H I@6 D@8 E@24 F@6 C@2 D@8 E@8 F@6 C@2 G H I@6 G H I@6 G H I@6 J@8 K@3 L@8 M@3
>`.pickRestart({
  A: "[~@3 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@9 b4@2, e3 e3@2 ~ e3 e3@2, ~@5 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 ~@2, ~@6 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@5, ~@2 c4 c4@2 ~ c4]/7",
  B: "[~@3 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@9 b4@2, c4@2 ~ c4 c4@2 ~ c4, ~@5 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 ~@2, ~@6 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@5, ~ e3 e3@2 ~ e3 e3@2]/8",
  C: "[~@3 b4@2 ~@6 g4@5 [g3,d4] [g3,d4,a4]@2 [g3,d4,a4]@2 [g3,d4,a4] [g3,d4,a4]@2 [g3,d4] [g3,d4,a4]@2 [g3,d4,a4]@2 [g3,d4] [g3,d4,g4]@2, c4, ~@5 b4@3 b4@24, ~@6 g4@5 ~@5 g4@8 g4@5 a4@3]/2", // G5 Gsus2 G5 Gsus2 G5
  D: "[[f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4,a4] [f3,d4,a4]@2 [f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4] g4@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4] [a3,e4,a4]@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4] [e4,g4]@2 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]!3 [c4,e4,g4,c5]@2 g4@2 [g3,d4] [g3,d4,a4]@2 [g3,d4,a4]@2 [g3,d4,a4] [g3,d4,a4]@2 [g3,d4] [g3,d4,a4]@2 [g3,d4,a4]@2 [g3,d4] [d4,g4]@2 [f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4,a4] [f3,d4,a4]@2 [f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4] g4@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4] [a3,e4,a4]@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4] [e4,g4]@2 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]!3 [c4,e4,g4,c5]@2 ~@5 b4@2 ~@9 b4@2, g4@8 g4@5 a4@3 g4@8 g4@5 a4@19 g4@8 g4@5 a4@3 g4@8 g4@5 a4@3 g4@8 g4@5 a4@24 b4 g4@2 b4@3 g4@5, ~@7 [f3,d4]@16 [c4,e4,c5]@16 [f3,d4]@16 [c4,e4,c5]@9, ~@15 a3@16 g3@16 a3@16 ~, ~@55 g4 e3@8]/8", // Dm A5 Em C G5 Gsus2 G5 Gsus2 …
  E: "[~@3 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@9 b4@2, e3@2 ~ e3 e3@2 ~ e3, ~@5 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 ~@2, ~@6 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@5, ~ c4 c4@2 ~ c4 c4@2]/8",
  F: "[~@3 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@9 b4@2, e3@2 ~ e3 e3@2, ~@5 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 ~@2, ~@6 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@5, ~ c4 c4@2 ~ c4]/6",
  G: "[f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4,a4] [f3,d4,a4]@2 [f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4] [f3,d4,g4]@2, g4@8 g4@5 a4@3", // Dm G7
  H: "[a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4] [a3,e4,a4]@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4] [a3,e4,g4]@2, g4@8 g4@5 a4@3", // A5 A7
  I: "[[c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]!3 [c4,e4,g4,c5]@2 g4@2 [g3,d4] [g3,d4,a4]@2 [g3,d4,a4]@2 [g3,d4,a4] [g3,d4,a4]@2 [g3,d4] [g3,d4,a4]@2 [g3,d4,a4]@2 [g3,d4] [d4,g4]@2 [f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4,a4] [f3,d4,a4]@2 [f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4] g4@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4] [a3,e4,a4]@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4] [e4,g4]@2 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]!3 [c4,e4,g4,c5]@2 g4@2 [g3,d4] [g3,d4,a4]@2 [g3,d4,a4]@2 [g3,d4,a4] [g3,d4,a4]@2 [g3,d4] [g3,d4,a4]@2 [g3,d4,a4]@2 [g3,d4] [g3,d4,g4]@2, ~@14 [c4,e4,c5]@31 a4@3 g4@8 g4@5 a4@19 g4@8 g4@5 a4@3, ~@16 g4@8 g4@5 a4@3 g4@8 g4@6 [f3,d4]@32 [c4,e4,c5]@18, ~@15 g3@16 a3@16 ~]/6", // C G5 Gsus2 G5 Gsus2 G5 Dm A5 …
  J: "[[f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4,a4] [f3,d4,a4]@2 [f3,d4] [f3,d4,a4]@2 [f3,d4,a4]@2 [f3,d4] g4@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4,a4] [a3,e4,a4]@2 [a3,e4] [a3,e4,a4]@2 [a3,e4,a4]@2 [a3,e4] [e4,g4]@2 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]@3 [c4,e4,g4,c5]!3 [c4,e4,g4,c5]@2 ~@5 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@14 b4@2 ~@9 b4@2, g4@8 g4@5 a4@3 g4@8 g4@5 a4@24 b4 g4@2 b4@3 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@11 g4@5 g4@5, ~@7 [f3,d4]@16 [c4,e4,c5]@16 ~ c4@8 c4@16, ~@30 a3@32 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 ~@2, ~@23 g4 e3@8 e3@16 ~@8 e3@8]/8", // Dm A5 Em C Dm C
  K: "[~@3 b4@2 ~@14 b4@2 ~@14 b4@2 ~@9 b4@2, e3@2 ~, ~@5 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 b4@5 ~@2 b4@3 b4@6 ~@2, ~@6 g4@5 g4@11 g4@5 g4@11 g4@5 g4@5, ~ c4 c4]/3",
  L: "[~@3 b4@2 ~@25 b6@10 ~@6 b6@10 ~@6 b6@10 ~@6 b6@10 ~@6 b6@10 ~@6 b6@10 ~@6 [g6,b6]@2, c4@24 b6@3 [d7,f#7]@16 [d7,f#7]@16 [d7,f#7]@16 [d7,f#7]@16 [d7,f#7]@16 [d7,f#7]@16 [d7,f#7]@5, ~@5 b4@3 b4@32 b6@6 ~@10 b6@6 ~@10 b6@6 ~@10 b6@6 ~@10 b6@6 ~@10 b6@6 ~@2, ~@3 g4@12 g6@8 g6@8 g6@8 g6@8 g6@8 g6@8 ~, ~@3 e7@2 e7@2 e7@2 e7@2 e7@2 e7@2 e7]/8", // G D
  M: "[~@7 [g6,b6]@16 ~, ~ e7@4 ~, ~@4 b6@3 ~@17, ~@11 [d7,f#7]@32 ~@5]/3", // G D
})).s("gm_acoustic_guitar_steel").gain(0.72)

// other · electric guitar clean · "Guitar-2"
const electric_guitar_clean = note(`<
  A ~@3 A ~@3 B ~@3 C@2 ~@2 C@2 ~@2 D@2 ~@11 E@2 F@2 G@3 H ~ I@2 J@2 ~@34 B ~@3 C@2 ~@2 C@2 ~@2 D@2 ~@11 E@2 F@2 G@3 H ~
  I@2 J@2 ~@49
>`.pickRestart({
  A: "e5 [g5,b5]@2 g5@12 ~", B: "e5 [g5,b5]@2 e5@3 b5@2 e6@7 ~", C: "[e5 b5@6 ~ g5@23 ~, ~ g5 ~@30]/2",
  D: "[b5@3 f#5@28 ~]/2", E: "[~@10 e5@3 ~ [g5,b5]@17 ~]/2", F: "[~@8 [d6,f#6]@2 ~ b5 ~@2 [d6,f#6]@17 ~]/2",
  G: "[~@8 b5@10 e5@3 d6@3 c6@3 ~ g5@11 ~ a4 [a4,b4]!3 b4 [b4,c5]!3]/3", H: "[c5,f#5]@2 b5@13 ~", I: "[d5 e5@22 ~@9]/2",
  J: "[~@2 b5@29 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.72)

stack(acoustic_guitar_steel, electric_guitar_clean)

More by Dave Matthews Band