Strudelify
Bird Dog cover art

1958

Bird Dog

The Everly Brothers

KeyB majorTempo144 bpm
0:00/0:00
// Bird Dog — The Everly Brothers
// 144 bpm, 4/4, key B major. Source: mcgill + 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 83 bars on a 16-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): STEEL GTR.
setcpm(144/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B A B C@3 D E@2 F D G H A B C@3 D E@2 F D G H A B I J D@2 K E D L I J D@2 K M A B A N C@3 D E@2 F D G H A B I J D@2
  K E D L I J D@2 K M A B A N A B A O@4
>`.pickRestart({
  A: "b2@3 ~ b2@4 e3@4 a2@4", B: "f#2 ~ f#2 ~ f#2 ~ f#2@7 ~@3", C: "b2 d#3 f#3 d#3", D: "b2@4 d#3@4 f#3@4 d#3@3 ~",
  E: "e2@4 g#2@4 b2@4 g#2@3 ~", F: "b2@4 d#3@3 ~ f#3@4 d#3@4", G: "f#2 a#2 c#3 a#2", H: "e2@4 g#2@3 ~ b2@4 g#2@2 ~@2",
  I: "e2 g#2 b2 g#2", J: "e3@4 b2@4 g#2@4 b2@3 ~", K: "f#2@4 a#2@4 c#3@4 a#2@3 ~", L: "b2 ~ b2 ~ b2 ~ b2 ~ a2@4 g#2@4",
  M: "e2@2 g#2@2 b2@2 g#2 ~", N: "f#2 ~ f#2 ~ f#2 ~ f#2@4 ~@2 g#2 ~ a#2 ~, ~@5 f#2@2 ~", O: "[f#3 c#3 f#2 b2@23 ~@6]/4",
})).s("gm_acoustic_bass").gain(0.72)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A B A B C@2 D C E F G H I F A B C@2 D C E F G H I F A B J@2 K@2 L M N O J@2 K@2 L M A B A B C@2 D C E F G H I F A P Q
  J K@2 L M N O J@2 K@2 L M A B A B A B A R@4
>`.pickRestart({
  A: "[b2,f#3,b3,d#4]@3 ~ [b2,f#3,b3,d#4]@3 ~ [e2,e3,g#3,b3]@3 ~ [a2,e3,a3,c#4]@3 ~", // B E A
  B: "[f#2,c#3,f#3,a#3,c#4] ~ [f#2,c#3,f#3,a#3,c#4] ~ [f#2,c#3,f#3,a#3,c#4] ~ [f#2,c#3,f#3,a#3,c#4]@6 ~@4", // F#
  C: "[b2,f#3,b3,d#4]@4 ~@2 [b2,f#3,b3,d#4] ~@5 [b2,f#3,b3,d#4] ~@3", // B
  D: "[f#3,b3,d#4]@5 ~@7 [b2,f#3,b3,d#4] ~@3, b2@7 ~@9", E: "[e2,e3,g#3,b3]@5 ~ [e2,e3,g#3,b3] ~@5 [e2,e3,g#3,b3]@3 ~",
  F: "[e2,e3,g#3,b3]@5 ~ [e2,e3,g#3,b3] ~@5 [e2,e3,g#3,b3] ~@3", G: "b2@5 ~ [f#3,b3,d#4] ~@5 [f#3,b3,d#4] ~@3",
  H: "[b2,f#3,b3,d#4]@5 ~ [b2,f#3,b3,d#4] ~@5 [b2,f#3,b3,d#4] ~@3", // B
  I: "[f#2,f#3,a#3,c#4]@5 ~ [f#2,f#3,a#3,c#4] ~@5 [f#2,f#3,a#3,c#4]@2 ~@2", // F#
  J: "[e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~", // E
  K: "[d#5,f#5,b5] ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~", // B
  L: "[c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~", // F#
  M: "[b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // E
  N: "[d#5,f#5,b5] ~@3 [d#5,f#5,b5] ~@3 [d#5,f#5,b5] ~@3 [d#5,f#5,b5] ~@3", // B
  O: "[d#5,f#5,a5,b5] ~ [d#5,f#5,a5,b5] ~ [d#5,f#5,a5,b5] ~ [d#5,f#5,a5,b5] ~@3 [d#5,f#5,a5,b5] ~ [d#5,f#5,a5,b5] ~@3", // B7
  P: "[f#2,c#3,f#3,a#3,c#4] ~ [f#2,c#3,f#3,a#3,c#4] ~ [f#2,c#3,f#3,a#3,c#4] ~ f#2@4 f#2@2 f#2@2 f2 ~, ~@3 [c#3,f#3,a#3,c#4]@3 ~@2", // F#
  Q: "[e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~, e2 ~@3", // E
  R: "[[f#2,f#3,a#3,c#4] ~ [f#2,f#3,a#3,c#4] ~ [f#2,f#3,a#3,c#4] ~ [b1,f#3,b3,d#4]@44 ~@14]/4", // F# B
})).s("gm_piano").gain(0.56)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@9 A ~ B C ~@8 A ~ B C ~@4 D E ~@6 F ~@3 G ~@3 H ~@5 A ~ B C ~@2 I ~ D E ~@6 F ~@3 G ~@3 H ~@7
>`.pickRestart({
  A: "~@4 g#4 ~@11", B: "~@12 f#4 ~@3", C: "~@12 [a#4,c#5] ~@3", D: "~@5 d5@3", E: "b4 ~@15", F: "~@7 d5",
  G: "~@10 [e4,g#4,b4] ~@5", H: "~@10 f#2 ~ g#2 ~ a#2 ~", I: "~@10 f#2 ~ f#2 ~ f2@2",
})).s("gm_acoustic_guitar_steel").gain(0.64)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B A B C@4 D@2 E@2 F G A B C@4 D@2 E@2 F G A B H@4 I J K L M@2 N@2 O P A B A B C@4 D@2 E@2 F G A B H@4 I J K L M@2
  N@2 O P A B A B A B Q R@3 ~
>`.pickRestart({
  A: "[b2,f#3,b3,d#4] ~ [f#3,b3,d#4]@2 [e3,g#3,b3,e4]@2 [a2,a3,c#4,e4,a4]@2, ~ [f#3,b3,d#4] ~@6, ~@3 b2@5 ~@8", // B E A B
  B: "[f#2,a#3,c#4,f#4] ~ [f#2,a#3,c#4,f#4] ~ [f#2,a#3,c#4,f#4]@2 [f#2,a#3,c#4,f#4]@6 ~@4", // F#
  C: "[[f#3,b3,d#4]@2 ~@4 [f#3,b3,d#4] ~ b2 ~@5 [f#3,b3,d#4] ~@2 [f#3,b3,d#4] ~@4 [f#3,b3,d#4] ~ b2 ~@5 [f#3,b3,d#4]!2, b2@3 b2@2 b2@3 ~ b2@2 b2@2 b2@3 b2@3 b2@2 b2@3 ~ b2@2 b2@2 b2@3, ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]@3 d#4@4 ~@18, ~@10 [f#3,b3]@2 [f#3,b3]@2 ~ [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]@2 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]@3 [f#3,b3,d#4]@2 [f#3,b3,d#4]@2 ~@2]/4", // B B5 B
  D: "[[e3,g#3,b3]@2 [e3,g#3,b3]@2 ~@4 [e3,g#3,b3] ~@2 [e3,g#3,b3]@2 [e3,g#3,b3]!3, ~@4 [e3,g#3,b3]@2 [e3,g#3,b3]@2 ~ [e3,g#3,b3]@2 ~@5, ~@5 e2@2 e2@3 e2@6]/2", // E
  E: "[~@6 [f#3,b3,d#4] ~@2 [b3,d#4] ~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4], b2@3 b2@2 b2@3 b2@3 b2@3 b2@2, ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4]@2 ~ f#3@3 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]@2 ~, ~@7 [b3,d#4]@2 ~@7]/2", // B
  F: "~@4 [f#3,a#3,c#4] ~@2 [f#3,a#3,c#4], f#2@3 f#2@3 f#2@2, ~@2 [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]@2 ~", // F#
  G: "~ [e3,g#3,b3]!2 ~@2 [e3,g#3,b3]!2 ~, e2@4 e2@3 ~, ~@3 [e3,g#3,b3]@2 ~@3", // E
  H: "[[g#3,b3,e4] ~@7 [g#3,b3,e4]@2 [g#3,b3,e4]@2 ~@4 [g#3,b3,e4]@4 [g#3,b3,e4]@2 [g#3,b3,e4]@4 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4] ~@9 [f#3,b3,d#4]@2 ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4]@2 ~@4 [f#3,b3,d#4]@2 [f#3,b3,d#4]@4 [f#3,b3,d#4]@4 [f#3,b3,d#4]@2, e3 [g#3,b3,e4] [g#3,b3,e4]@2 ~@2 [g#3,b3,e4]@2 ~@10 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4] ~@2 [f#3,b3,d#4]@2 ~@6, ~@3 e3@3 e3@8 e3@17 b2@7 b2@5 b2@7 b2@14]/4", // E B E B
  I: "[f#3,a#3,c#4]@4 [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]@3 [f#3,a#3,c#4]@4 [f#3,a#3,c#4] ~, f#2@6 f#2@9 ~", // F#
  J: "[e3,g#3,b3]@4 [e3,g#3,b3]@2 [e3,g#3,b3]@4 [e3,g#3,b3]@2 [e3,g#3,b3]@3 ~, e2@15 ~", K: "[b3,d#4,f#4,b4]!4",
  L: "[b3,d#4,f#4,a4,b4]!3 [b3,d#4,f#4,a4,b4]@2 [b3,d#4,f#4,a4,b4]!2 ~", // B7
  M: "[[e3,g#3,b3]@2 ~@2 [e3,g#3,b3] ~@2 [e3,g#3,b3] ~ e2 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4], e2@3 e2@3 e2@3 ~ e2@6, ~@2 [e3,g#3,b3]@2 ~ [e3,g#3,b3]@2 ~ e3@8, ~@8 [g#3,b3]@3 ~@5]/2", // E G#m
  N: "[~@4 [b3,d#4] ~ b2 ~ [f#3,b3,d#4] ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4]@2 [f#3,b3,d#4], b2@3 b2@3 ~ b2@3 b2@6, ~@2 [b3,d#4]@2 ~ [b3,d#4]@3 ~ [f#3,b3,d#4]@2 ~@5]/2", // B
  O: "[f#3,a#3,c#4]@2 ~@2 [f#3,a#3,c#4] [f#3,a#3,c#4]@2 [f#3,a#3,c#4], f#2@3 f#2@5, ~ [f#3,a#3,c#4] ~@2", // F#
  P: "[e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3] ~", // E
  Q: "[b2,f#3,b3,d#4] ~@3 [f#3,b3,d#4]@3 ~ [e3,g#3,b3,e4]@4 [a2,a3,c#4,e4,a4]@2 ~@2, ~ [f#3,b3,d#4] ~@6, ~@3 b2@4 ~@9", // B E A B
  R: "[[f#2,f#3,a#3,c#4] ~ [f#2,f#3,a#3,c#4] ~ [f#2,f#3,a#3,c#4] ~ [b2,f#3,b3,d#4]@32 ~@10]/3", // F# B
})).s("gm_electric_guitar_muted").gain(0.59)

// drums · kick
const kick = s("bd").struct(`<
  A B A B C@10 A B C@10 A B D@6 C@2 D@6 A B A B C@10 A B D@6 C@2 D@6 A B A B A B A E ~@3
>`.pickRestart({
  A: "x!2", B: "x ~ x!2 ~@4", C: "x ~@2 x!3 ~ x", D: "x ~ x ~ x!4", E: "x!4 ~@4",
})).gain(0.67)

// drums · snare
const snare = s("sd").struct(`<
  A B A B C@10 A B C@10 A B C@6 A D C@6 A B A B C@10 A B C@6 A D C@6 A B A B A B A E ~@3
>`.pickRestart({
  A: "x!4", B: "x ~@2 x ~@4", C: "~ x ~ x", D: "x ~ x ~ x ~ x ~@3 x ~@3 x!2", E: "~@2 x!2 ~@4",
})).gain(0.67)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~ A ~ A ~@11 A ~@11 A ~@7 B ~@7 A ~ A ~@11 A ~@7 B ~@7 A ~ A ~ A ~ C ~@3
>`.pickRestart({
  A: "~ x!2 ~@5", B: "~@8 x!2 ~@2 x!2 ~@2", C: "x!2 ~@6",
})).gain(0.13)

// drums · hihat
const hihat = s("hh").struct("<A@4 B@10 A@2 B@10 A@2 B@14 A@4 B@10 A@2 B@14 A@7 C ~@3>".pickRestart({
  A: "~ x ~ x", B: "x!4", C: "~ x ~@2",
})).gain(0.67)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@4 A B A B A B A B A B ~@2 A B A B A B A B A B ~@2 A B A B A B A B A B A B A B ~@4 A B A B A B A B A B ~@2 A B A B A
  B A B A B A B A B ~@7 C ~@3
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~@2", C: "~ x ~@6",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@79 [~ x ~@6] ~@3>").gain(0.67)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@5 A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~@5 A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A
  ~ A ~ A ~@7 B ~@3
>`.pickRestart({
  A: "~@7 x", B: "~@3 x ~@4",
})).gain(0.67)

// drums · high tom
const high_tom = s("ht").struct("<~@79 [~ x ~@2] ~@3>").gain(0.67)

// drums · crash
const crash = s("cr").struct("<~@79 [~@3 x ~@4] ~@3>").gain(0.67)

// drums · ride
const ride = s("rd").struct("<A B A B ~@10 A B ~@10 A B C@14 A B A B ~@10 A B C@14 A B A B A B A D ~@3>".pickRestart({
  A: "x!2", B: "x ~ x!2 ~@4", C: "x!4", D: "x!2 ~@2",
})).gain(0.67)

stack(
  bass, piano, acoustic_guitar_steel, electric_guitar_muted, kick, snare, snare_soft, hihat, hihat_soft, mid_tom,
  open_hat, high_tom, crash, ride
)

More by The Everly Brothers