Strudelify
Every Time You Go Away cover art

1985 · The Secret of Association

Every Time You Go Away

Paul Young

KeyF majorTempo95 bpm
0:00/0:00
// Every Time You Go Away — Paul Young
// 95 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 9 "Glock" named as a mallet, played on glockenspiel (its tenor sax patch is not one); ch 13 "Fuzz" named as a guitar, played on distortion guitar (its alto sax patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(95/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, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass · "Bass"
const bass = note(`<
  A B C D A E C D F G H I J G H I D K L M N K L M O P@2 Q R A S C D A E C D T G H U K L M V K L M O W X Q Y A S C D A E
  C D T Z H I AA G H AB W X Q Y A S C D A E C D ~@4 AC AD AE D AC AF AG AH K L M V K L M AI ~
>`.pickRestart({
  A: "f2@4 ~@2 f2 ~ f2@4 c3@2 db3@2", B: "d3@4 ~@2 d3 ~ d3@3 d3 a3@4", C: "g3@4 ~@2 g2 ~ g2@6 ~@2",
  D: "c3@4 ~@2 c3 ~ c3@6 ~@2", E: "d3@4 ~@3 a3 f4 a3 e4 a3 d4 a3 f3 a3", F: "f2@3 f3 ~@2 f2 ~ f2@2 f3@3 c3 f2 g2",
  G: "bb2@4 ~@2 bb2 ~ bb2 ~@7", H: "bb2@2 ~ bb2 ~@2 bb2 ~ bb2 ~@3 bb3@4", I: "c3@2 ~ c3 ~@2 c3 ~ c3@2 ~@6",
  J: "f2@3 f3 ~@2 f2 ~ f2 ~ f3@3 c3 f2 g2", K: "f2@2 ~ f2 ~@2 f2 ~ f2@4 ~@4", L: "a2@2 ~ a2 ~@2 a2 ~ a2@4 ~@4",
  M: "bb2@2 ~ bb2 ~@2 bb2 ~ bb2@4 ~@4", N: "c3@2 ~ c3 ~@2 c3 ~ c3 ~ c4 d4 g3 c3 f3 c3",
  O: "c3@2 ~ c3 ~@2 c3 ~ [g4,c5]@3 ~ [d4,g4] [c4,f4] [d4,g4]@2", // C5 G5 F5 G5
  P: "[d3@4 ~@2 a3 e4 f4 ~ [f4,g4] e4 a3@3 g3@5 ~@4 [f4,ab4]@4 [e4,g4]@4]/2", Q: "bb2@4 ~@2 bb2 ~ bb2@6 ~@2",
  R: "b2@4 ~@2 b2 ~ f4 b3 d4 b3 ab3 d4 b3 ab3", S: "d3@4 ~@2 d3 ~ d3@2 ~ d3 a3 bb3 a3@2",
  T: "f2@4 ~@2 f2 ~ f2 ~ f3@3 c3 f2 g2", U: "c3@2 ~ c3 ~@2 c3 ~ c3@6 ~@2",
  V: "c3@2 ~ c3 ~@2 c3 ~ c3 ~ c4 d4 g3 c3 g3 c3", W: "d3@4 ~@2 a3 e4 f4 ~ [f4,g4] e4 a3@2 d3@2",
  X: "g3@3 ~ [db4,e4]@2 [e4,a4]@2", Y: "b2@4 ~@2 b2 ~ f4 b3 d4 ab3 f3 b3 ab3 f3", Z: "bb2@2 ~ bb2 ~@2 bb2 ~ bb2 ~@7",
  AA: "f2@4 ~@2 f2 ~ f2@2 f3@3 c3 f2 g2", AB: "c3@2 ~ c3 ~@2 c3 ~ c3@2 ~ e3 e3@4",
  AC: "f2@4 ~@2 f2 ~ f2@2 ~ f2 c3@2 db3@2", AD: "d3@4 ~@3 d3 a3 d3 d4 d3 g3 f3 bb2 a2",
  AE: "g2@4 ~@2 g2 ~ g2@4 ~ d3 g2@2", AF: "d3@4 ~@3 g4 e4@2 c4 a3 d4 ~@2 d3", AG: "g2@4 ~@2 g2 ~ g2@6 bb2 b2",
  AH: "c3@4 ~@2 c3 ~ c3@4 ~@4", AI: "c3@2 ~ c3 ~@2 c3 ~ [g4,c5]@3 ~ [d4,g4] ~ [d4,g4]@2, ~@14 [c4,f4] ~",
})).s("gm_fretless_bass").gain(0.36)

// chords · synth strings 1 · "Strings"
const synth_strings_1 = note(`<
  A@2 B C A@2 B C D E@2 F D G@4 H I J K H I J L M N O P A@2 B C A@2 B C Q R@3 H I J K H I J L M N O P A@2 B C A@2 B C Q
  S@2 T U S@2 V M N O P A@2 B C A@2 B C ~@6 W@3 X Y Z H I J K H I J L ~
>`.pickRestart({
  A: "[[f3,g4] [d3,d4], [f4,a4,c5]]/2", B: "[g3,f4,g4,bb4,d5]", C: "[a4,d5]@3 [g4,c5]@5, c4", D: "a4@3 g4@5, [c4,f4]",
  E: "[[c4,f4,bb4]@4 f4@7 g4@5, ~ [c4,d4]@3]/2", F: "f4@3 e4 ~@4, [c4,g4]",
  G: "[[c4,f4,bb4]@4 f4@7 ~@5 f4@3 e4 ~@4 f4@3 e4 ~@4, ~@2 c4@13 ~, ~ d4@3 ~@4, ~@11 g4@19 ~@2]/4", // Fsus4
  H: "~@8 c4@7 ~, [f3,g3,a3]", I: "e3 e4, [g3,a3,c4]", J: "f3 f4, [a3,bb3,d4]", K: "~ g4, [c3,g3,c4]",
  L: "[c3,g3,c4,g4]", M: "[a3,d4,f4]", N: "[a3,f4]@3 [g3,e4]@5, db4", O: "[bb3,d4,f4]", P: "[b3,d4,f4,ab4]@15 ~",
  Q: "[f4,a4]@5 ~ [e4,g4]@10, c5", R: "[d4@6 d4 ~@25 g4@14 ~@2, f4@19 ~@5, bb4@2 ~, ~@3 c4@20 ~]/3",
  S: "[c4,f4,bb4,c5]/2", T: "[c4,g4,c5], f4@3 ~@5", U: "[f4,a4]@3 [e4,g4]@5, c5", V: "[c4,g4,c5]@7 ~",
  W: "[a4@3 ~@8 e4 ~@4 [f4,a4]@8, f4@11 ~@13, d4@15 ~ c4@32, ~@3 g4@13 ~@8]/3", X: "[c4,d4,f4,a4]",
  Y: "[bb3,d4,f4], g4@3 ~@5", Z: "[c4,f4]@5 ~@11",
})).s("gm_synth_strings_1").gain(0.28).pan(0.6)

// chords · piano
const piano = note(`<
  ~@9 A B C ~ D B E ~@9 F ~ G ~@3 H I ~@2 H I ~ A B C ~@8 F ~ G ~@3 H I ~@2 H I ~ A B C ~ A B E F ~ G ~@3 H I ~@2 H I
  ~@21
>`.pickRestart({
  A: "~@6 [bb3,bb5] [c4,c6] c6@2 [c4,c6]@5 ~, ~@8 c4 ~@7", B: "[d4,d6]@5 ~ [c4,c6]@7 ~ [f3,f5] ~",
  C: "[f3,f5]@6 [g3,g5] ~ [g3,g5]@6 ~@2", D: "~@6 [bb3,bb5] [c4,c6]!2 ~ [c4,c6]@4 ~@2",
  E: "[f3,f5]@5 ~ [g3,g5] ~ [g3,g5]@6 ~@2", F: "[e6,f6,a6] d6 [e5,f5,a5] d5 [e4,f4,a4] ~@11",
  G: "[e6,f6,a6] d6 [e5,f5,a5] d5 [e4,f4,a4]@2 ~@10", H: "[f4,d5] [g4,e5] [e4,c5] ~ [f4,d5]@2 ~@10",
  I: "[a5,d6]@4 ~@2 [g5,c6] ~ [g5,c6]@4 ~@4", // D5 C5
})).s("gm_piano").gain(0.56)

// other · brass section · "Sitar g."
const brass_section = note(`<
  ~@8 A B ~@2 A B ~@2 C D ~@10 E F@3 G H F@2 G A B ~@2 D ~@10 E F@3 G H F@2 G I ~@10 E F@3 G H F@2 G ~@21
>`.pickRestart({
  A: "a3@2 bb3@2 c4@2 e3@7 ~ e3@2", B: "f3@3 ~@5", C: "g4 a4 f4 g4 d4 f4 c4 d4 a3 c4 g3 a3 f3 g3 c3 d3", D: "f2 ~@3",
  E: "ab4@2 f4@2 d4@2 b3@2 d3@2 ab3@2 b3@2 ab3 ~", F: "~@7 f3 f4@6 ~@2", G: "~@10 f4 g4 c4 d4 g3 a3",
  H: "f3@4 ~@3 f3 f4@6 ~@2", I: "f3 ~@3",
})).s("gm_brass_section").gain(0.64)

// other · overdriven guitar · "g. Solo"
const overdriven_guitar = note("<~@61 A B C D E F G H I J ~@31>".pickRestart({
  A: "f3 c3 g3 c3 g3 a3 c4 a3 f4@2 g4 bb3 [c4,a4]!4", B: "[d4,bb4]@2 [e4,c5] [c4,a4]@5 ~@8",
  C: "~@9 a4!2 c5 a4 f4!2 a4", D: "f4 c4 c4@3 ~@4 [c4,a4]!2 [bb3,g4]!2 ~ [a3,f4] ~",
  E: "[bb3,g4]@2 [a3,f4] [f3,c4]@4 ~@2 a3 bb3 c4 f4 c4 bb3 a3", F: "bb3@2 a3 g3@2 f3@3 ~@7 a3",
  G: "bb3 c4 [a3,f4] [bb3,g4]!2 [c4,a4] [bb3,g4] [a3,f4] [a3,f4]@2 e4 ~ f4@2 g4@2", // Dm Eb F Eb Dm
  H: "~ bb3 c4 f4 bb3 d4 f4 bb3 c4 f4 bb3 c4 e4 g3 c4 e4", I: "~@10 f4 [d4,e4] a3!2 g3 f3", J: "g3 a3@3 ~@12",
})).s("gm_overdriven_guitar").gain(0.72)

// chords · electric guitar muted · "Echo Syn"
const electric_guitar_muted = note("<~@17 A B C D E B C D ~@16 A B C D E B C D ~@44 A B C D E B C D ~>".pickRestart({
  A: "[a3,d4] ~ [a3,d4] [g3,c4] [a3,d4] [g3,c4] [f3,a3] [g3,c4] [f3,a3] ~ [f3,a3] ~ [f3,a3] [a3,c4] [f3,a3] [a3,c4]", // D5 C5 D5 C5 F C5 F Am …
  B: "[c4,e4] ~ [c4,e4] g4 [c4,e4] g4 [c4,e4] g4 [c4,e4] ~ [c4,e4] ~ [c4,e4] [d4,f4] [c4,e4] [d4,f4]", // C Dm C Dm
  C: "[d4,g4] ~ [d4,g4] [c4,f4] [d4,g4] [c4,f4] [a3,d4] [c4,f4] [a3,d4] ~ [a3,d4] ~@5", // G5 F5 G5 F5 D5 F5 D5
  D: "[a3,d4] ~ [a3,d4] [g3,c4] [a3,d4] [g3,c4]!2 ~ [g3,c4] ~ [g3,c4] ~@5", // D5 C5 D5 C5
  E: "[a3,d4] ~ [a3,d4] [g3,c4] [a3,d4] [g3,c4] [f3,a3] [g3,c4] [f3,a3] ~ [f3,a3] ~@2 c4 ~ c4, ~@6 [f3,a3]!2", // D5 C5 D5 C5 F C5 F
})).s("gm_electric_guitar_muted").gain(0.48).pan(0.3)

// chords · electric guitar muted · "Echo Syn" · soft notes
const electric_guitar_muted_2 = note("<~@19 A B ~@2 A B ~@18 A B ~@2 A B ~@46 A B ~@2 A B ~>".pickRestart({
  A: "~@12 [a3,d4] ~ [a3,d4] ~", B: "~@12 [g3,c4] ~ [g3,c4] ~",
})).s("gm_electric_guitar_muted").gain(0.24).pan(0.3)

// chords · electric guitar jazz · "el. guit"
const electric_guitar_jazz = note(`<
  ~@4 A B C D ~@20 E F G H I A J K L ~@15 E F G H I A J K L ~@11 M F G H I A J K L ~@21
>`.pickRestart({
  A: "[c4,g4] ~@2 [c4,f4] ~@2 [c4,f4]!2 [c4,g4] ~ [c4,f4,a4]@2 [c4,f4,a4]@2 ~@2", // C5 F5 C5 F
  B: "[d4,g4] ~@2 [d4,f4] ~@2 [d4,f4]!2 [d4,g4] ~ [d4,f4,a4]@2 [d4,f4,a4]@2 ~@2", // G5 Dm G5 Dm
  C: "[d4,g4] ~@2 [d4,f4] ~ d4 [d4,f4]!2 [d4,g4] ~ [d4,f4,a4] ~ [d4,f4,a4]@2 ~@2", D: "c4 d4 c4 d4 c4@2 ~@10",
  E: "ab4@2 d4@2 ~@2 ab3@2 d3@2 ab3@2 b3@2 ab3 ~, ~@4 b3@5 ~@7",
  F: "[c4,g4] ~@2 [c4,f4] [c4,g4] ~ [c4,f4]@2 ~@2 [c4,f4,a4]@4 ~@2", // C5 F5 C5 F5 F
  G: "[d4,g4] ~@2 [d4,g4] ~@2 [d4,f4]!2 [d4,g4] ~ [d4,f4,a4]@4 ~@2", // G5 Dm G5 Dm
  H: "[d4,g4] ~@2 [d4,g4] ~@2 [d4,f4]!2 [d4,g4] ~ [d4,f4,a4]@2 [d4,f4,a4]@2 ~@2", I: "c4 d4 c4 d4 c4 d4 c4 d4 c4 ~@7",
  J: "[d4,g4] ~@2 [d4,g4] ~ d4 [d4,f4]!2 [d4,g4] ~ [d4,f4,a4]@2 [d4,f4,a4]@2 ~ d4", // G5 Dm G5 Dm
  K: "[d4,g4] ~@2 [d4,g4]@2 ~ [d4,f4]!2 [d4,g4]@2 [d4,f4,a4] ~ [f4,a4]@2 ~@2, ~@3 d4", // G5 Dm G5 Dm F
  L: "c4 ~ c4 ~ c4 ~ c4 ~ c4 ~@7, ~ d4@2 d4@2 d4@2 d4@9", M: "ab4@2 d4@2 b3@2 ab3@2 d3@2 ab3@2 b3@2 ab3 ~",
})).s("gm_electric_guitar_jazz").gain(0.3).pan(0.6)

// chords · electric guitar jazz · "el. guit" · soft notes
const electric_guitar_jazz_2 = note("<~@5 A B ~@22 C ~@3 D B E ~@17 C ~@3 D B E ~@13 C ~@3 D B E ~@22>".pickRestart({
  A: "~@5 d4 ~@10", B: "~@2 d4 ~@13", C: "~@2 [c4,f4] ~@6 c4 ~@4 c4 ~", D: "~@2 c4 ~@2 c4 ~@10",
  E: "~@2 d4 ~@2 d4 ~@10",
})).s("gm_electric_guitar_jazz").gain(0.05).pan(0.6)

// chords · glockenspiel · "Glock"
const glockenspiel = note(`<
  ~@8 A B ~@2 A C ~@2 D ~@12 E F G H E F G H A B ~ I ~@12 E F G H E F G H A B ~ I J K ~ I ~@4 E F G H E F G H ~@21
>`.pickRestart({
  A: "[f5,a5,c6]@2 ~ [e5,g5,c6]@3 ~@2", B: "[f5,bb5,c6]@3 ~@5", C: "[f5,bb5,c6] ~@3",
  D: "[f5,g5,c6]@4 ~@2 [e5,g5,c6] ~ [e5,g5,c6]@2 ~@6", E: "~@8 a4 ~ c5 ~ f5 ~ g5 ~", F: "f5 ~@15",
  G: "~@6 bb4 ~ bb4 ~ bb4 ~ c5 ~ d5 ~", H: "a4 ~@15", I: "[f5,g5,c6] ~@15", J: "[f5,a5,c6] ~@5 [e5,g5,c6] ~@9",
  K: "[f5,bb5,c6] ~@15", // Fsus4
})).s("gm_glockenspiel").gain(0.48)

// other · distortion guitar · "Fuzz"
const distortion_guitar = note(`<
  A ~@3 B@2 ~@19 C D E F A ~@3 B@2 ~@14 C D E F A ~@3 B@2 ~@10 C D E F A ~@3 B@2 ~@23
>`.pickRestart({
  A: "[f2,c3]", B: "f3/2", C: "[a2,d3]", D: "a2@3 e3@3 a3@2", E: "bb2", F: "ab4 d4 b3 ab3 d3 ab3 b3 ab3",
})).s("gm_distortion_guitar").gain(0.3)

// drums · kick
const kick = s("bd").struct("<A@28 B A@23 B A@19 B A@11 C A@5 C A@10 ~>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x!4", C: "x ~@2 x!2 ~@2 x",
})).gain(0.8)

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

// drums · hihat
const hihat = s("hh").struct(`<
  A B A B A B@2 C B@3 C B@4 D B@3 E B@7 ~ A B A B A B@2 C B@3 E B@3 E B E B@5 ~ A B A B A B@2 E F@3 G F@3 H B@3 ~ A B A
  B A B@2 E F@3 G F I@2 F@2 G I J B@3 E B@4 ~
>`.pickRestart({
  A: "x!10 ~@2 x!4", B: "x!16", C: "x!8 ~@4 x ~@3", D: "~ x ~ x", E: "x!14 ~@2", F: "x!8", G: "x!7 ~", H: "x!4 ~@4",
  I: "x!5 ~ x!2", J: "x!5 ~@3",
})).gain(0.32)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@7 A ~@3 A ~@4 B ~@3 C ~@15 A ~@3 C ~@3 C ~ C ~@13 C ~@7 A ~@11 C ~@5 D@2 ~@3 D ~@4 C ~@5
>`.pickRestart({
  A: "~ x", B: "x!2", C: "~@7 x", D: "~@5 x ~@2",
})).gain(0.48)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct(`<
  A ~ A ~ A ~@24 A ~ A ~ A ~@19 A ~ A ~ A ~@15 A ~ A ~ A ~@6 B ~@5 B ~@11
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@7 x",
})).gain(0.32)

// drums · tambourine
const tambourine = s("tb").struct("<A@7 B A@3 B A@4 B ~@12 A@7 B A@3 B ~@12 A@7 B A@7 B ~@4 A@7 B ~@21>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.48)

// drums · cowbell
const cowbell = s("cb").struct("<~@25 A@3 B ~@20 A@3 B ~@16 A@3 B ~@29>".pickRestart({
  A: "x!4", B: "x ~@3 x ~@3 x!2 ~@2 x!2 ~@2",
})).gain(0.48)

// drums · cowbell · soft notes
const cowbell_soft = s("cb").struct("<~@25 A@3 B ~@20 A@3 B ~@16 A@3 B ~@29>".pickRestart({
  A: "~ x ~@3 x ~@3 x ~@3 x ~@2", B: "~ x ~@3 x ~@10",
})).gain(0.32)

stack(
  bass, synth_strings_1, piano, brass_section, overdriven_guitar, electric_guitar_muted, electric_guitar_muted_2,
  electric_guitar_jazz, electric_guitar_jazz_2, glockenspiel, distortion_guitar, kick, snare, hihat, open_hat,
  open_hat_soft, tambourine, cowbell, cowbell_soft
)

More by Paul Young