Strudelify

What Would You Say

Dave Matthews Band

KeyG majorTempo119 bpm
0:00/0:00
// What Would You Say — Dave Matthews Band
// 119 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 110 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(119/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 C B C B C D C B C B C B C E C B C B C B C F G H I J K C D L M L M L M C N C B C B C B C F G H I J K C D L M L M L
  M C N C B O P ~@4 Q R S T U V S W X Y X Z AA AB AC AD C B C B C B C AE C B C B C B C F G H I J K C D ~
>`.pickRestart({
  A: "g3 [g#3,a3] g4@2 b4 [a4,a#4] g3 d5 [d#5,e5] e5 a3@2 e5@2 g4@2", // Amaj7 A#maj7 Emaj7
  B: "~@2 [e4,a4,c#5]!2 [e4,a4,c#5]@2 ~ d5 ~@2 b4@2 a4@2 e4@2, g3@3 c#5@2 ~@3", // A
  C: "[g3,g#3] a3 g4@2 b4 [a4,a#4] g3 d5 [d#5,e5] e5 a3@2 e5@2 g4@2", D: "[g3,e4] ~@7",
  E: "g3@3 g4 ~@2 g3@2 g4 ~ g3 g4 ~ g3 g4 ~",
  F: "[g3,e4,b4]@3 [g3,e4,a4] ~@2 g3@2 [g3,e4,a4] ~@2 [g3,e4,a4] [g3,e4,a4]@2 ~@2", // Em A7
  G: "[f4,c5,a5]@3 ~ [f4,c5,a5]@3 ~ [f4,c5,a5]@3 ~ [g4,d5,b5]@3 ~", // F G
  H: "[g4,d5,b5]@3 ~ [g4,d5,b5]@3 ~ [a4,c5,e5,a5]@3 ~ [a4,c5,e5,a5]@3 ~", // G Am
  I: "[a4,c5,e5,a5]@3 ~ [g4,d5,b5]@3 ~ [g4,d5,b5]@3 ~ [g4,d5,b5]@3 ~", J: "[f4,c5,a5]@5 ~ [e3,b3,e4,a4,b4,e5]@9 ~",
  K: "[f4,c5,a5]@5 ~@3 g4@8, ~@3 [c5,d5,b5]@5", L: "[f3,f#3] g3 g4@2 b4 [a4,a#4] ~ d5 [d#5,e5] e5 a3@2 e5@2 [d4,g4]@2",
  M: "g3@3 g4 a4 ~ a4!2 g4@2 g4!2 a4@2 g4@2",
  N: "[g3,e4,a4]@2 ~ [g3,e4] ~ [g3,f#4] ~ [g3,f#4] ~ [g3,e4] ~@2 [g3,e4]@2 [g3,e4]@2", // A7 C Gmaj7 C
  O: "[g3,g#3] a3 g4@2 b4 [a4,a#4] ~@2 [a3,g4]@3 [a3,g4]@2 [a3,g4]@3", P: "[g3,e4,b4] ~@7",
  Q: "[e4,f#5]@2 ~@2 [e4,g4,d5,g5]@2 a3@2 [e4,g4,c#5,g5]@3 [e4,g4,c#5,g5]!2 ~ [d4,g4,b4]@2", // Esus2 Em7 C#dim G
  R: "[a3,e4,a4]@2 ~ [c4,e4,a#4] ~@2 [b3,d4,a4,b4]@2 ~@2 e3@2 g3 e3!2 e4", // A5 C7 Bm7
  S: "~@2 e3@2 [e4,g4,d5,g5]@2 a3@2 [e4,g4,c#5,g5]@3 [e4,g4,c#5,g5]!2 ~ [d4,g4,b4]@2", // Em7 C#dim G
  T: "[a3,e4,a4]@2 ~ [c4,e4,a#4] ~@2 [b3,d4,a4,b4]@2 ~@2 e3@2 [d4,d5] [d#4,e4,d#5,e5] [e4,e5]!2", // A5 C7 Bm7 D Emaj7 E
  U: "[e4,e5]@2 ~@2 [e4,g4,d5,g5]@2 a3@2 [e4,g4,c#5,g5]@3 [e4,g4,c#5,g5]!2 ~ [d4,g4,b4]@2", // E Em7 C#dim G
  V: "[a3,e4,a4]@2 ~ [c4,e4,a#4] ~@2 [b3,d4,a4,b4]@2 ~@2 e3@2 g3 e3!2 g4", // A5 C7 Bm7
  W: "[a3,e4,a4]@2 ~ [c4,e4,a#4] ~@2 [b3,d4,a4,b4]@2 ~@4 [a4,c#5,g5,b5,e6]!4", // A5 C7 Bm7 A7
  X: "~@2 [g#4,c5,f#5,a#5,d#6] [a4,c#5,g5,b5,e6]!3 ~@2 [g4,c5,f#5,a#5,d#6] [a4,c#5,g5,b5,e6]!3 ~@2 [a4,c#5,g5,b5,e6]@2", // G#7 A7 Cm7 A7
  Y: "~@2 [f#4,f#5] [g4,g5] [b4,b5] ~ [b4,b5] ~@3 [f#4,f#5] [g4,g5]!2 [f#4,f#5] ~@2", // F# G B F# G F#
  Z: "~ [e5,g5,c#6] ~@2 [e5,g5,b5]@2 ~@2 [e5,g5,d6]!8", // C#dim Em Em7
  AA: "~@2 [g#4,c5,f#5,a#5,d#6]@2 [a4,c#5,g5,b5,e6]@2 ~@2 [g4,c5,f#5,a#5,d#6] [a4,c#5,g5,b5,e6]!3 ~@2 [a4,c#5,g5,b5,e6]@2", // G#7 A7 Cm7 A7
  AB: "~@2 [f#4,f#5]@2 ~@2 [e4,e5]@2 ~@2 [f#4,f#5] [g4,g5]!3 ~ [f#4,f#5]", // F# E F# G F#
  AC: "[e4,e5]@2 [g#4,c5,f#5,a#5,d#6]@2 [a4,c#5,g5,b5,e6]!2 ~@2 [g4,c5,f#5,a#5,d#6] [a4,c#5,g5,b5,e6]!3 ~@2 [g5,g6]@2", // E G#7 A7 Cm7 A7 G
  AD: "[g5,g6]!2 ~ [g5,g6]!9 [g5,g6]@2 ~@2", // G
  AE: "[g3,e4,a4,c5]@3 [g3,e4,a4,c5] ~ [g3,e4,a4,c5]!2 ~@2 [g3,e4,a4,c5] ~ [g3,e4,a4,c5] [g3,e4,a4,c5]@2 [g3,e4,a4,c5]@2", // Am7
})).s("gm_acoustic_guitar_steel").gain(0.45)

// chords · acoustic guitar steel · "Guitar-2"
const acoustic_guitar_steel_2 = note(`<
  A B C B C B C D C B C B C B C E C B C B C B C F G H I J K L D M N M N M N C B C B C B C B C F G H I J K L D M N M N M
  N C B C B O P ~@4 Q R S T Q R S T Q R S T Q R S R C B C B C B C U C B C B C B C F G H I J K L D ~
>`.pickRestart({
  A: "g3 [g#3,a3] g4@2 b4 [a4,a#4] g3 d5 [d#5,e5] b4 a3@2 b4@2 ~@2", // Amaj7 A#maj7 Emaj7
  B: "~@2 [e4,a4,c#5]!2 c#5@2 ~ d5 ~@2 b4@2 a4@2 e4@2, g3 ~, ~ [e4,a4] ~@2, ~@3 c#5@2 ~@3", // A A5
  C: "[g3,g#3] a3 g4@2 b4 [a4,a#4] g3 d5 [d#5,e5] b4 a3@2 b4@2 ~@2", D: "[g3,e4] ~@7",
  E: "[g3,e4,a4,c#5]@3 [g3,e4,a4,c#5] ~@2 [g3,e4,a4,c#5] ~@2 [g3,e4,a4,c#5] ~@2 [f#3,d#4,g#4,c#5]!2 [g#3,e4,a4,c#5]!2", // A7 F#sus2 Amaj7
  F: "[g3,d4,a4]@3 ~@3 [g3,d4,a4] ~@2 [g3,d4,a4] ~@2 [g3,d4,a4]@3 ~", // Gsus2
  G: "[f3,c4,f4,a4,c5,f5]@3 [f3,c4,f4,a4,c5,f5] [f3,c4,f4,a4,c5,f5]@2 [f3,c4,f4,a4,c5,f5]!2 [f3,c4,f4,a4,c5,f5]@2 [f3,c4,f4,a4,c5,f5]!2 [g3,d4,g4,b4,d5,g5]@2 [g3,d4,g4,b4,d5,g5]!2", // F G
  H: "[g3,d4,g4,b4,d5,g5]@2 [g3,d4,g4,b4,d5,g5]!2 [g3,d4,g4,b4,d5,g5]@2 [g3,d4,g4,b4,d5,g5]!2 [a3,e4,a4,c5,e5,f5,a5]@2 [a3,e4,a4,c5,e5,a5]!2 [a3,e4,a4,c5,e5,a5]@2 [a3,e4,a4,c5,e5,a5]!2", // G Fmaj7 Am
  I: "[a3,e4,a4,c5,e5,a5]@2 [a3,e4,a4,c5,e5,a5]!2 [g3,d4,g4,b4,d5,g5]@2 [g3,d4,g4,b4,d5,g5]!2 [g3,d4,g4,b4,d5,g5]@2 [g3,d4,g4,b4,d5,g5]!2 [g3,d4,g4,b4,d5,g5]@2 [g3,d4,g4,b4,d5,g5]@2", // Am G
  J: "[f3,c4,f4,a4,c5,f5]@5 ~ [e3,b3,e4,a4,b4,e5]@9 ~", K: "[f3,c4,f4,a4,c5,f5]@5 ~ [g3,d4,g4,b4,d5,g5]@9 ~",
  L: "[g3,g#3] a3 g4@2 b4 [a4,a#4] g3 d5 [d#5,e5] e5 a3@2 e5@2 g4@2", // G#maj7 A#maj7 Emaj7
  M: "[f3,f#3] g3 g4@2 b4 [a4,a#4] ~ d5 [d#5,e5] b4 a3@2 b4@2 ~@2", // F#maj7 A#maj7 Emaj7
  N: "[g3,d4,a4]@3 ~@6 [g3,d4,a4] ~@2 [g3,d4,a4]@2 ~@2", // Gsus2
  O: "[g3,g#3] a3 g4@2 b4 [a4,a#4] ~@2 [a3,e4,a4]@3 [a3,e4,a4]@2 [a3,e4,a4]@3", P: "[g3,e4,b4] ~@7",
  Q: "[e4,f#5]@2 ~@2 [e4,g4,d5,g5]@2 a3@2 [e4,g4,c#5,g5]@3 [e4,g4,c#5,g5]!2 ~ [d4,g4,b4]@2", // Esus2 Em7 C#dim G
  R: "[a3,e4,a4]@2 ~ [c4,e4,a#4] ~@2 [b3,d4,a4,b4]@2 ~@2 e3@2 g3 e3!2 e4", // A5 C7 Bm7
  S: "~@2 e3@2 [e4,g4,d5,g5]@2 a3@2 [e4,g4,c#5,g5]@3 [e4,g4,c#5,g5]!2 ~ [d4,g4,b4]@2", // Em7 C#dim G
  T: "[a3,e4,a4]@2 ~ [c4,e4,a#4] ~@2 [b3,d4,a4,b4]@2 ~@2 e3@2 [d4,d5] [d#4,e4,d#5,e5] [e4,e5]!2", // A5 C7 Bm7 D Emaj7 E
  U: "[g3,e4,a4,c5]@3 [g3,e4,a4,c5] ~ [g3,e4,a4,c5]!2 ~@2 [g3,e4,a4,c5] ~ [g3,e4,a4,c5] [g3,e4,a4,c5]@2 [g3,e4,a4,c5]@2", // Am7
})).s("gm_acoustic_guitar_steel").gain(0.45)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@7 A B@16 C D E F G H I J K L K L K L K B@8 C D E F G H I J K L K L K L K B@2 M N O@2 B@2 P ~@15 Q R S T U V W X B@8
  C D E F G H ~@2
>`.pickRestart({
  A: "e2 ~@7", B: "[a2@3 ~@3 a2 a2@6 ~ g#2 g2@4 ~ g2@2 g2@5 ~ g2@2 g#2@2]/2", C: "f2 c3 d#3 f3 d#3 c3 g2 d3",
  D: "f3 g3 f3 d3 a2 e3 g3 a3", E: "g3 e3 g2 d3 f3 g3 f3 d3", F: "f2@5 ~ e2@5 ~ e2@2 e2@2", G: "f2@5 ~ g2@5 ~ g2@3 ~",
  H: "a2@2 a2@2 a3@2 a3 a3@2 a3 a3@2 a3@2 g#3@2",
  I: "g3 ~@9 a2 [a#2,b2,c3] [c#3,d3,d#3,e3] [e3,f3,f#3] [c3,c#3,d3,d#3] [g#2,a2,a#2,b2]",
  J: "a2@2 a2@2 a3@2 a3 a3@2 a3 d3@2 d#3@2 e3@2, g2 ~@15", K: "g2@2 g2@2 g3@2 g3 g3@2 g3 c3@2 c#3@2 d3@2",
  L: "a2@2 a2@2 a3@2 a3 a3@2 a3 d3@2 d#3@2 e3@2", M: "a2@3 ~@3 a2@2 a2@3 a2@2 a2@3",
  N: "g2@2 ~@8 a2 [a#2,b2,c3] [c#3,d3,d#3,e3] [e3,f3,f#3] [c3,c#3,d3,d#3] [g#2,a2,a#2,b2]",
  O: "[a2@3 ~@3 a2 a2@6 ~ g#2 g2@4 ~ g2@2 g2@5 ~ g2@2 g#2@2, g2 ~@31]/2", P: "a2@3 ~@13", Q: "a2@15 ~", R: "b2@15 ~",
  S: "c#3@15 ~", T: "d3@15 ~", U: "e3@15 ~", V: "f#3@15 ~", W: "g3@15 ~", X: "b3@15 ~",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · acoustic guitar steel · "Guitar-3"
const acoustic_guitar_steel_3 = note("<~@29 A B C D E@2 F@2 G@8 ~@7 H@2 F@2 E@2 I J@8 ~@40 K ~@2>".pickRestart({
  A: "[c5,e5]@2 g4@2 ~@8 [c#5,d5,e5,f5] [d#5,e5,f#5,g5]@2 ~", B: "[d4,g4,a#4,b4,d5] ~@15",
  C: "[c5,c#5,e5] ~ g4@2 ~@8 [c#5,d5,e5,f5] [d#5,e5,f#5,g5]@2 ~", // C
  D: "[d4,g4,b4,d5]@3 ~@9 [b4,c5,d5,d#5] [c#5,d5,e5,f5]@2 ~, a#4 ~@15", // G
  E: "[e5 ~ g4@2 ~@8 [c#5,d5,e5,f5] [d#5,e5,f#5,g5]@2 ~ [d4,g4,b4,d5]@3 ~@3 a4@2 g4@2 g4@2 a4@3 ~, c5, ~@16 a#4 ~@15]/2", // G
  F: "[[c#5,e5] ~ g4@2 ~@8 [c#5,d5,e5,f5] [d#5,e5,f#5,g5]@2 ~ [d4,g4,b4,d5]@3 ~@9 [b4,d5,d#5] [c#5,d5,e5,f5]@2 ~, c5@7 c5, ~@16 a#4 ~@15]/2", // C#m G B
  G: "[[c#5,e5] ~ g4@2 ~@124, c5]/8", // C#m
  H: "[e5 ~ g4@2 ~@8 [c#5,d5,e5,f5] [d#5,e5,f#5,g5]@2 ~ [d4,g4,a#4,b4,d5] ~@15, c5]/2", // G
  I: "[c#5,e5] ~ g4@2 ~@8 [c#5,d5,e5,f5] [d#5,e5,f#5,g5]@2 ~, c5", // C#m
  J: "[[d4,g4,b4,d5]@3 ~@9 [b4,d5,d#5] [c#5,d5,e5,f5]@2 ~ [c#5,e5] ~ g4@2 ~@108, a#4 ~@11 c5@116]/8", // G B C#m
  K: "e5 ~ g4@2 ~@8 [c#5,d5,e5,f5] [d#5,e5,f#5,g5]@2 ~",
})).s("gm_acoustic_guitar_steel").gain(0.45)

// other · string ensemble 1 · "Synth"
const string_ensemble_1 = note("<~@16 A@3 ~@20 A@3 ~@44 B C D E F G H I A@3 ~@11 J ~>".pickRestart({
  A: "[a5@47 ~]/3", B: "a4@15 ~", C: "b4@15 ~", D: "c#5@15 ~", E: "d5@15 ~", F: "e5@15 ~", G: "f#5@15 ~", H: "g5@15 ~",
  I: "b5@15 ~", J: "a5@15 ~",
})).s("gm_string_ensemble_1").gain(0.72)

// drums · rim
const rim = s("rim").struct("<~@8 A@16 B@3 A@2 C A@17 B@3 A@2 C A@17 ~@4 A@28 B@3 A@2 C D ~>".pickRestart({
  A: "x ~@2 x ~@3 x ~@2 x ~@5", B: "x!4", C: "x ~@2 x ~@3 x ~@8", D: "x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@7 A B@16 ~@3 B@2 C B@17 ~@3 B@2 C B@17 ~@4 B@28 ~@3 B@2 C ~@2>".pickRestart({
  A: "~@5 x!3", B: "~ x ~ x", C: "~@4 x ~@3 x!8",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<~@8 A@16 ~@3 A@2 B A@17 ~@3 A@2 B A@17 ~@4 A@28 ~@3 A@2 B ~@2>".pickRestart({
  A: "~ x!6 ~ x!8", B: "~ x!6 ~@9",
})).gain(0.45)

// drums · open hat
const open_hat = s("oh").struct("<~@8 A@16 B@3 A@20 B@3 A@20 ~@4 A@28 B@3 A@3 C ~>".pickRestart({
  A: "x ~@6 x ~@8", B: "x!4", C: "x",
})).gain(0.5)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, bass, acoustic_guitar_steel_3, string_ensemble_1, rim, snare, hihat,
  open_hat
)

More by Dave Matthews Band