Strudelify
Daddy's Home cover art

1982 · Wired for Sound

Daddy's Home

Cliff Richard

KeyE majorTempo70 bpm
0:00/0:00
// Daddy's Home — Cliff Richard
// 70 bpm, 4/4, key E major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 52 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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 · electric bass finger
const bass = note(`<
  ~@2 A B C D E F G H A D I J K D L M N O P Q P R S T U V W X A F Y Z AA AB AC AD AA AE S AF AG B E V AH B AI AJ AK AL
>`.pickRestart({
  A: "f2@5 f2 d2@5 d2", B: "g2@3 g2!3 c2@4 d2 e2", C: "f2@3 f2!3 d2@4 e2 f2", D: "g2@6 c2@4 d2 e2",
  E: "f2@3 f2!3 d2@5 d2", F: "g2@5 g2 c2@4 d2 e2", G: "f2@6 d2@3 d2!3", H: "g2@5 g2 c2@6", I: "f2@5 f2 d2@3 d2!3",
  J: "g2@3 f2 e2 a#1 c2@5 c2", K: "f2 d2", L: "f2@3 f2!3 a#1@3 a#2 a2 g2", M: "f2!2", N: "a#1@4 d2 f2 c2@4 d2 e2",
  O: "f2@4 a2 c3 f2@4 c2 f2", P: "a#1@4 d2 f2 c2@4 g2 c2", Q: "f2@8 c2 ~ c2@2 f2@6 c2@6",
  R: "f2@6 ~@2 f2 ~ g2@2 d2@8 a2@2 d2@2", S: "g2@4 b2 d3 g3@3 d2@3", T: "c2@5 g2 c2@4 d2 e2", U: "f2@6 d2@3 d2 e2 f2",
  V: "g2@6 c2@3 c2!3", W: "f2@3 f2!2 e2 d2@3 d3 a2 f2", X: "g2@5 g2 c2@5 c2", Y: "f2@3 f2!3 a#1@3 a#1 d2 d#2",
  Z: "f2@5 f2 f2@5 f2", AA: "a#1@8 f2 ~ f2@2 c2@8 d2@2 e2@2", AB: "f2@8 c2 ~ c2@2 f2@8 c2 ~ c2@2",
  AC: "a#1@4 d2 f2 c2@3 g2@3", AD: "f2@4 a2 c3 f2@3 c2@3", AE: "f2@6 ~@2 f2 ~ g2@2 d2@8 e2@2 f#2@2",
  AF: "c2@5 g2 c3@4 g2 e2", AG: "f2@6 d2@4 e2 f2", AH: "f2@3 f2!2 e2 d2@4 e2 f2", AI: "f2@5 f2 a#1@5 a#1",
  AJ: "f2@10 f2 ~ f2@8 f3@2 c3@2", AK: "f2@8 c3 ~ c3@2 f3@8 c2 ~ c2@2", AL: "f3@3 c3@2 f2@4 ~@3",
})).s("gm_electric_bass_finger").gain(0.28).pan(0.6)

// chords · epiano1
const epiano1 = note(`<
  ~@2 A B A B A B A B A C A B A B D E F G H E I J K L A B A B A C D E M E M N M O K P A B A B A B Q R S T
>`.pickRestart({
  A: "[a3,c4,f4] [a3,d4,f4]", B: "[g3,a#3,d4] [a#3,c4,e4,g4]", C: "[d4,g4,a#4] [a#3,c4,e4,g4]",
  D: "[a3,c4,f4] [f3,a#3,d4]", E: "[a3,c4,f4] [c4,d#4,f4,a4]",
  F: "[a#3,d4,f4]@3 ~@7 f4@2 [a#3,c4,e4,g4]@12, ~ [a#3,d4]@2 ~@3, ~@2 f4@3 ~@7, ~@2 a#4 ~@3", // A# C7 A#
  G: "[a3,c4,f4]@12 [c4,d#4,f4,a4]@3 ~@7 c5@2, ~@2 [c4,d#4,f4,a4], ~@5 f5", // F F7
  H: "[a#3,d4,f4]@12 [a#3,c4,e4,g4]@3 ~@7 g4@2, ~@2 [a#3,c4,e4], ~@8 g4@3 ~, ~@5 c5", I: "[a#3,d4,f4] [a#3,c4,e4,g4]",
  J: "[a3,c4,f4]@3 [a#3,c#4,d#4,g4]@3 ~@3 f#5 g5 a5, ~ [c4,d4,f#4,a4]", K: "[b3,d4,f4,g4]", L: "[a#3,c4,e4,g4]",
  M: "[a#3,d4,f4]@3 ~@7 f4@2 ~@6 e5@2 f5@2 g5@2, ~ [a#3,d4]@2 [a#3,c4,e4,g4]@3, ~@2 f4@3 ~@7, ~@2 a#4 ~@3", // A# C7
  N: "[a3,c4,f4]@3 ~@7 c5@2 [c4,d#4,f4,a4]@12, ~ [a3,c4,f4]@2 ~@3, ~@2 f5 ~@3", // F F7 F
  O: "[a3,c4,f4]@6 [c#4,d#4,g4,a#4]@6 [c4,d4,f#4,a4]@3 ~@7 a4@2, ~@2 [c4,d4,f#4], ~@8 a4@3 ~, ~@5 d5", // F D#7 D7
  P: "e4@7 ~@2 c5 g4 e4, [a#3,c4]@23 ~, g4@4 g4 ~, ~@7 e4@4 ~", Q: "[a3,c4,f4] [a#3,d4,f4]", R: "[a3,c4,f4]",
  S: "[a3,f4,c5]", T: "[a3,f4,c5]@5 ~ [a3,c4,f4]@4 [a3,f4,c5]@6 ~@8",
})).s("gm_epiano1").gain(0.23)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@2 A B A B A B A B A B A B A B C D E D E D E F G H A B A B A B C D E D E D E F G H A B A B A B C A I J
>`.pickRestart({
  A: "~@6 [a3,f4] ~@11 [a3,f4] ~@5", B: "~@6 [a#3,g4] ~@11 [a#3,e4] ~@5", C: "~@6 [a3,f4] ~@11 [f3,d4] ~@5",
  D: "~@6 [a3,f4] ~@11 [a3,d#4] ~@5", E: "~@6 [f3,d4] ~@11 [a#3,e4] ~@5", F: "~@18 [c4,f#4] ~@5",
  G: "~@6 [b3,f4] ~@11 [b3,f4] ~@5", H: "~@6 [a#3,e4] ~@11 [a#3,e4] ~@5", I: "~@6 [f4,a4] ~@11 [f4,a4] ~@5",
  J: "~@6 [f4,a4] ~@3 [a4,f5]@9 ~@5", // F Dm
})).s("gm_electric_guitar_clean").gain(0.29).pan(0.4)

// chords · piano
const piano = note(`<
  ~@2 A B A B A B A B A B A B A B C D E F G F E H I J A B A B A B C D E F E F G K I J A B A B A B C L@2 M
>`.pickRestart({
  A: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // F Dm
  B: "[g3,a#3,d4] ~ [g3,a#3,d4] ~ [g3,a#3,d4] ~ [g3,a#3,d4] ~ [g3,a#3,d4] ~ [g3,a#3,d4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~", // Gm C7
  C: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~", // F A#
  D: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [c4,d#4,f4,a4] ~ [c4,d#4,f4,a4] ~ [c4,d#4,f4,a4] ~ [c4,d#4,f4,a4] ~ [c4,d#4,f4,a4] ~ [c4,d#4,f4,a4] ~", // F F7
  E: "[a#3,d4,f4] ~ [a#3,d4,f4]!3 ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4]!3 ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~", // A# C7
  F: "[a3,c4,f4] ~ [a3,c4,f4]!3 ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [c4,d#4,f4,a4] ~ [c4,d#4,f4,a4]!3 ~ [c4,d#4,f4,a4] ~ [c4,d#4,f4,a4] ~ [c4,d#4,f4,a4] ~", // F F7
  G: "[f3,a#3,d4] ~ [f3,a#3,d4]!3 ~ [f3,a#3,d4] ~ [f3,a#3,d4] ~ [f3,a#3,d4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4]!3 ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~", // A# C7
  H: "[a3,c4,f4] ~ [a3,c4,f4]!3 ~ [a#3,c#4,d#4,g4] ~ [a#3,c#4,d#4,g4]!3 ~ [c4,d4,f#4,a4] ~ [c4,d4,f#4,a4]!3 ~ [c4,d4,f#4,a4] ~ [c4,d4,f#4,a4] ~ [c4,d4,f#4,a4] ~", // F D#7 D7
  I: "[b3,d4,f4,g4] ~ [b3,d4,f4,g4]!3 ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~", // G7
  J: "[a#3,c4,e4,g4] ~ [a#3,c4,e4,g4]!3 ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~ [a#3,c4,e4,g4] ~", // C7
  K: "[a3,c4,f4] ~ [a3,c4,f4]!3 ~ [c#4,d#4,g4,a#4] ~ [c#4,d#4,g4,a#4]!3 ~ [c4,d4,f#4,a4] ~ [c4,d4,f#4,a4]!3 ~ [c4,d4,f#4,a4] ~ [c4,d4,f#4,a4] ~ [c4,d4,f#4,a4] ~", // F D#7 D7
  L: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  M: "[a3,c4,f4]@4 ~ [a3,c4,f4]@5 ~@2", // F
})).s("gm_piano").gain(0.32).pan(0.4)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@50 A@2>".pickRestart({
  A: "[~@6 [g4,a#4,d5]@3 [a4,c5,e5]@3 [c5,e5,g5]@3 [a#4,d5,f5]@3 [a4,c5,e5]@4 ~@2 [a4,c5,e5]@21 ~@3, ~@3 [f4,a4]@6 ~@14 [g4,a#4]@2 ~@23, ~@2 c5@2 ~@7 d5 ~@12]/2", // Gm Am C A# Am F Gm
})).s("gm_string_ensemble_2").gain(0.29)

// drums · kick
const kick = s("bd").struct("<~@2 A@7 B A@7 B@9 A@7 B@9 A@7 B@2 C>".pickRestart({
  A: "x!2", B: "x ~@4 x!2 ~@4 x", C: "x ~@2 x ~ x ~@6",
})).gain(0.48)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@2 A@7 ~ A@7 ~@9 A@7 ~@9 A@7 ~@3>".pickRestart({
  A: "~@5 x ~@5 x",
})).gain(0.32)

// drums · rim
const rim = s("rim").struct("<[x!2] [x!4] [~ x ~ x]!49 [~ x ~@2]>").gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@9 A ~@7 B C@8 ~@8 C@7 D ~@7 B C E>".pickRestart({
  A: "~@7 x!5", B: "~@6 x ~ x ~ x!2", C: "~ x ~ x", D: "~@3 x ~@2 x ~ x ~ x!2", E: "x ~@2 x!3 ~@6",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct("<~@2 A B A B A B@2 ~ A@2 B A B@2 A B ~@8 A@8 ~@8 A@4 B A@2 B ~@2>".pickRestart({
  A: "x!12", B: "x!11 ~",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@25 [~@10 x!2] ~@7 [~@10 x!2] ~@17 [~@4 x!2 ~@6]>").gain(0.48)

// drums · open hat
const open_hat = s("oh").struct("<~@3 A ~ A ~ A@2 ~@3 A ~ A@2 ~ A ~@28 A ~@2 A ~@2>".pickRestart({
  A: "~@11 x",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@25 [~@7 x!3 ~@2] ~@7 [~@7 x!3 ~@2] ~@17 [~ x!3 ~@8]>").gain(0.48)

// drums · crash
const crash = s("cr").struct("<~@2 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@8 B>".pickRestart({
  A: "x", B: "x ~@4 x ~@6",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct("<~@18 A B@7 ~@8 A B@7 ~@8 B C>".pickRestart({
  A: "~ x!11", B: "x!12", C: "~ x!3 ~@8",
})).gain(0.48)

stack(
  bass, epiano1, electric_guitar_clean, piano, string_ensemble_2, kick, kick_soft, rim, snare, hihat, mid_tom, open_hat,
  high_tom, crash, ride
)

More by Cliff Richard