Strudelify

Rhyme & Reason

Dave Matthews Band

KeyB♭ majorTempo122 bpm
0:00/0:00
// Rhyme & Reason — Dave Matthews Band
// 122 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 141 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Guitar-2.
setcpm(122/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 B A B A B A B A B A B A B A B A B A B A B A B C D E F C D E F A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B C D E F C D E F C D E F A B A B A B A B A B A B A B A B A B A B A B A B A B A B C D E F C D E F C D E F C D E F C D
  E F G H I J G H I J G H I J G H I J ~ K L ~@2
>`.pickRestart({
  A: "g4@2 d4@2 bb4@2 eb4@2 bb3@2 g4@2 [eb4,e4] f4 c4@2", B: "a4@3 ~@3 c4@2 e5@2 [d5,eb5] bb3 c5@2 d4@2",
  C: "[g3,d4]@2 [g3,d4]@2 [g3,d4]@2 [g3,d4]@4 [g3,d4]@2 [g3,d4]@2 [g3,d4]!2", // G5
  D: "[c4,g4]@2 [c4,g4]!2 [c4,g4]@2 [c4,g4]@4 [c4,g4]@2 [c4,g4]@3 ~", // C5
  E: "[bb3,f4]@2 [bb3,f4]!2 [bb3,f4]@2 [bb3,f4]@4 [bb3,f4]@2 [bb3,f4]@2 [bb3,f4]@2", // Bb5
  F: "[a3,g4]@2 [a3,g4]@2 [a3,g4]@2 [a3,g4]@4 [a3,g4]@3 ~ [a3,g4]@2", G: "[g3,d4]@15 ~", H: "[c4,g4]@15 ~",
  I: "[bb3,f4]@15 ~", J: "[a3,g4]@15 ~", K: "~@8 [g3,d4]@3 ~ [g3,d4]@3 ~", L: "~@4 [g3,d4]@3 ~@9",
})).s("gm_acoustic_guitar_steel").gain(0.72).pan(1)

// chords · acoustic guitar steel · "Guitar-2"
const acoustic_guitar_steel_2 = note("<~@120 A B C D A B C D A B C D A B E ~ F@5>".pickRestart({
  A: "~@6 [g3,d4]@5 ~ [g3,d4]@3 ~", B: "~@6 [c4,g4]@5 ~ [c4,g4]@3 ~", C: "~@6 [bb3,f4]@5 ~ [bb3,f4]@3 ~",
  D: "~@6 [a3,g4]@5 ~ [a3,g4]@3 ~", E: "~@4 [bb3,f4]!2 ~@2",
  F: "[~@10 d5@6 [g4,a4,bb4,d5]!8 [a4,bb4] [g4,a4,bb4,d5]!3 [a4,bb4] [g4,a4,bb4,d5]!3 [g4,a4,bb4,d5]!3 [g4,a4,bb4,d5]@32 ~@13, ~ f4@4 ~@5, ~@9 [a4,bb4]@7 ~@64]/5", // Gm Bbmaj7 Gm Bbmaj7 Gm Bbmaj7
})).s("gm_acoustic_guitar_steel").gain(0.45)

// chords · electric guitar clean · "Guitar-3"
const electric_guitar_clean = note(`<
  ~@4 A@8 B C D@2 E@2 B ~ F@4 G H I J K H I J A@14 L M A@2 L N O@2 P Q R@2 S T K H I J K H I J K H I J U@2 V W A@2 X@2
  Y@2 Z@2 AA@2 AB@2 AC@2 AD@4 AE@4 AF@2 K H I J K H I ~@34
>`.pickRestart({
  A: "[[c4,db4] d4@30 ~]/2", B: "[c4,db4] d4@6 ~@3 eb4@3 ~@3", C: "d4@15 ~",
  D: "[[c4,db4] d4@10 ~@3 [f4,gb4] g4@16 ~]/2", E: "[[c4,db4] d4@6 ~@3 eb4@3 ~ d4@17 ~]/2",
  F: "[[c4,db4] d4@6 ~@3 e4@3 ~ d4@9 ~@9]/2", G: "[g3,d4]@2 [g3,d4]@7 ~ [g3,d4]@2 [g3,d4]@2 [g3,d4]!2",
  H: "[c4,g4]@2 [c4,g4]!2 [c4,g4]@2 [c4,g4]@4 [c4,g4]@2 [c4,g4]@3 ~", // C5
  I: "[bb3,f4]@2 [bb3,f4]!2 [bb3,f4]@2 [bb3,f4]@4 [bb3,f4]@2 [bb3,f4]@2 [bb3,f4]@2", // Bb5
  J: "[a3,g4]@2 [a3,g4]@2 [a3,g4]@2 [a3,g4]@4 [a3,g4]@3 ~ [a3,g4]@2", // A7
  K: "[g3,d4]@2 [g3,d4]@2 [g3,d4]@2 [g3,d4]@4 [g3,d4]@2 [g3,d4]@2 [g3,d4]!2", L: "[c4,db4] d4@14 ~",
  M: "~@8 c4@3 ~ [bb3,b3] ~@3", N: "~@12 f4@2 [gb4,g4] ~", O: "[d4@7 ~ eb4@5 ~ d4@9 ~@5 [c4,f4]@3 ~]/2",
  P: "[d4,g4]@7 ~, [db4,gb4] ~@15", Q: "~@4 [bb4,b4] c5@3 eb5 ~@3 c5 ~@3",
  R: "[[c4,db4] d4@6 ~ eb4@5 ~ d4@9 ~@5 [c4,f4]@3 ~]/2", S: "[d4,g4]@10 ~@4 [f4,gb4,bb4,b4] [g4,c5], [db4,gb4] ~@15",
  T: "[g4,c5]@11 ~ [g4,c5]@2 [f4,gb4,c5,db5] [e4,b4]", U: "[~@4 [c4,db4] d4@18 ~ [d4,g4]@8]/2",
  V: "[c4,db4,f4,gb4] [b3,e4] ~@2 [c4,f4]@4 [d4,g4]@7 ~, ~@8 [db4,gb4] ~@7", W: "[d4,g4]@2 f4@5 ~ gb4@7 ~",
  X: "[[c4,db4,f4,gb4] [d4,g4]@6 ~ eb4@5 ~ [d4,eb4] c4@11 ~@2 [c4,f4]@2 [db4,d4,gb4,g4] ~, ~@15 db4 ~@16]/2", // Dbmaj7 G5 Ebmaj7 F5 Dmaj7
  Y: "[[d4,g4]@7 ~ eb4@5 ~ [db4,d4] c4@12 ~ [c4,f4]@2 [db4,d4,gb4,g4] ~]/2", Z: "[d4@7 ~ eb4@5 ~ [db4,d4] c4@16 ~]/2",
  AA: "[~@2 [d4,g4]@13 ~, ~@4 [c4,f4] ~@27]/2", AB: "[~@4 [d4,g4]@18 ~@2 g4@2 [f4,gb4] ~ f4@4, ~@4 [c4,f4] ~@27]/2",
  AC: "[~ g4@3 [d4,g4]@23 ~ [c4,f4]@4, gb4]/2", // G5 F5
  AD: "[[d4,g4]@14 ~@4 [d4,g4,c5]@3 ~ [d4,g4,c5]@2 [d4,g4,c5]@3 ~ [c4,db4,f4,bb4,b4] a3@3 [c4,db4] d4@6 ~ eb4@5 ~ d4@9 ~@5 [c4,f4]@3 ~, gb4@7 gb4@9, db4 ~@17 [c4,f4,bb4] ~@45]/4", // G5 Csus2 Bbm Dbmaj7 F5 Fsus4
  AE: "[[d4,g4]@7 ~ eb4@5 ~ d4@9 ~@5 [c4,f4]@3 ~, gb4, db4 ~@31]/2", AF: "[[d4,g4]@7 ~ eb4@5 ~ d4@17 ~, db4 ~@31]/2",
})).s("gm_electric_guitar_clean").gain(0.56).pan(1)

// other · acoustic guitar steel · "Guitar-4"
const acoustic_guitar_steel_3 = note(`<
  ~@4 A B A B ~@24 A B A B A B A B A B A B ~@32 A B A B A B A B ~@57
>`.pickRestart({
  A: "g4@2 d4@2 d5@2 eb4@2 bb3@2 bb4@2 [eb4,f4] ~ c4@2", B: "c5@3 ~@3 c4@2 g5@2 [eb5,f5] bb3 eb5@2 d4@2",
})).s("gm_acoustic_guitar_steel").gain(0.45)

// other · alto sax · "Sax"
const alto_sax = note("<~@36 A@2 B@2 A@2 C@2 ~@32 A@2 B@2 A@2 C@2 ~@57>".pickRestart({
  A: "[~@4 d4@9 ~ f4@7 ~ a4@9 ~]/2", B: "[c5@3 ~ a4@27 ~, b4 ~@31]/2", C: "[c5@3 ~ [a4,e5]@27 ~, b4 ~@31]/2",
})).s("gm_alto_sax").gain(0.72)

// other · violin
const violin = note("<~@36 A@2 B@2 A@2 C@2 ~@32 A@2 B@2 A@2 C@2 ~@57>".pickRestart({
  A: "[~@4 d5@9 ~ f5@7 ~ a5@9 ~]/2", B: "[c6@3 ~ a5@27 ~, b5 ~@31]/2", C: "[c6@3 ~ [a5,e6]@27 ~, b5 ~@31]/2",
})).s("gm_violin").gain(0.72)

stack(acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_clean, acoustic_guitar_steel_3, alto_sax, violin)

More by Dave Matthews Band