Strudelify
Every Time You Go Away cover art

The Secret Of Association

Every Time You Go Away

Young Paul

KeyF majorTempo81 bpm
0:00/0:00
// Every Time You Go Away — Paul Young
// 81 bpm, 4/4, key F 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 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(81/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 · synth strings 2
const synth_strings_2 = note(`<
  A B C D E B F G H@3 I J K@4 ~@8 L M N O P L Q R S L Q R J K@4 ~@8 L M N O P L Q R S L Q R H@3 I J T@3 L M N O P L Q R
  S L Q R ~@6 U R P L Q R S L Q R J K@4 V ~
>`.pickRestart({
  A: "[f3,g3,c4]", B: "[f3,a3,d4]", C: "[bb3,d4,g4]", D: "[c4,e4,a4]@6 [c4,e4,g4,c5]@9 ~", E: "[f3,a3,c4]",
  F: "[bb3,d4,g4]@15 ~", G: "[e4,g4,d5]@6 [e4,g4,c5]@9 ~",
  H: "[[f3,a3]@7 ~ [e3,g3]@7 ~@23 g4@10, c4@15 [f3,bb3,d4]@32 ~]/3", I: "~@2 g3@13 ~, [c4,d4,g4]@15 ~",
  J: "[f3,a3]@5 ~ [e3,g3]@9 ~, c4@15 ~", K: "[~ c4, d4, [f3,bb3] ~, ~@15 g4@48 ~]/4", L: "[a3,d4,f4]",
  M: "[a3,db4,e4]@15 ~", N: "[bb3,d4,f4], c4 ~@7", O: "[b3,d4,f4,ab4]", P: "[a3,c4,f4]", Q: "[g3,bb3,d4]",
  R: "[c4,e4,a4] [e4,g4,c5]", S: "[f3,g3,a3,c4]", T: "[~@32 c4@15 ~, d4, [f3,bb3]@2 ~, ~@15 g4@32 ~]/3",
  U: "[g2,a3,bb3,d4,f4]", V: "g4 f4, [f2,a3,c4]",
})).s("gm_synth_strings_2").gain(0.26).pan(0.2)

// bass · synth bass 2 · "Bass"
const bass = note(`<
  A B C D E F C G H I J K H I J K L M N O P M N O Q R S T U V W C X Y Z AA AB H I J K L M N O P M N O AC R S T U V W C X
  Y Z AA AB H I J K H I J K R S T U V W C X Y Z AA AB ~@4 AD Z AA AB V W C X Y Z AA AB H I J K L AE ~
>`.pickRestart({
  A: "f2@4 ~@2 f2 ~ f2@5 ~ c2 db2", B: "d2@4 ~@2 d2 ~ d2@4 a2 bb2 a2@2", C: "g2@4 ~@2 g1 ~ g1@5 ~@3",
  D: "c2@4 ~@2 c2 ~ c2@6 ~@2", E: "f2@5 ~ f2 ~ f2@5 ~ c2 db2", F: "d2@6 ~ a2 f3 ~ e3 a2 d3 a2 f2 a2",
  G: "c2@4 ~@2 c2 ~ c2@2 ~@6", H: "f1@4 ~@2 f1 ~ f1@2 f2 g2 f2 c2 a1 ~", I: "bb1 ~@5 bb1 ~ bb1 ~@7",
  J: "bb1 ~@2 bb1 ~@2 bb1 ~ bb1 ~@3 bb2@4", K: "c2@2 ~ c2 ~@2 c2 ~ c2 ~@7", L: "c2@4 ~@2 c2 ~ c2@8",
  M: "f1@2 ~ f1 ~@2 f1 ~ f1@2 ~@6", N: "a1@2 ~ a1 ~@2 a1 ~ a1@2 ~@6", O: "bb1@2 ~ bb1 ~@2 bb1 ~ bb1@2 ~@6",
  P: "c2@2 ~ c2 ~@2 c2 ~ c2 ~ c3 d3 ~@2 g2 d2", Q: "c2@2 ~ c2 ~@2 c2 ~ [d3,g3]@2 c3 ~ g2 f2 g2@2, ~@8 c3 ~@3 d3@2 ~@2",
  R: "d2@5 a2 d3 e3 f3@3 e3 d3 ~@2 a2", S: "a1@2 [d3,g3] ~", T: "bb1@5 ~ bb1 ~ bb1@7 ~",
  U: "b1@5 ~ b1@2 f3@2 ~ f3@2 ~ f3@2, ~@13 b1@3", V: "f1@5 ~ f1 ~ f1@4 c2@2 db2@2", W: "d2@6 d1 ~ d1@4 a2@4",
  X: "c2@4 ~@2 c2 ~ c2@5 ~@3", Y: "f1@4 ~@2 f1 ~@5 c2@2 db2@2, ~@4 f1@3 ~", Z: "d2@5 ~@2 a2 f3 a2 e3 ~ d3 a2 f2 a2",
  AA: "g2@5 ~ g1 ~ g1@5 ~@3", AB: "c2@4 ~@2 c2 ~ c2@4 ~@4",
  AC: "c2@2 ~ c2 ~@2 c2 ~ [d3,g3]@2 c3 ~ [g2,a2] f2 g2@2, ~@8 c3 ~@3 d3@2 ~@2", AD: "f1@4 ~@2 f1 ~ f1@4 c2@2 db2@2",
  AE: "f1",
})).s("gm_synth_bass_2").gain(0.56)

// bass · synth bass 2 · "Bass" · soft notes
const bass_soft = note(`<
  ~@5 A ~@2 B ~@3 B ~@7 C ~@3 D E F ~ G ~@5 H ~@2 B ~@7 C ~@3 D E F ~ G ~@5 H ~@2 B ~@3 B ~@3 E F ~ G ~@5 H ~@7 H ~@7 H
  ~@2 B ~@6
>`.pickRestart({
  A: "~@9 a2 ~@6", B: "~@15 c2", C: "~@12 a2 f2 ~@2", D: "~@7 d3", E: "~@13 [a2,b2] f2 ~", F: "~@3 [a2,e3]",
  G: "~@10 b1 ~@5", H: "~@11 a2 ~@4",
})).s("gm_synth_bass_2").gain(0.37)

// chords · piano
const piano = note(`<
  ~@9 A B C ~ D E F G ~@8 H ~ I ~@3 J K ~@2 L M ~ D E F G ~@8 H ~ I ~@3 J K ~@2 L M ~ A B C ~ D E F H ~ I ~@3 J K ~@2 L
  M ~@10 J K ~@2 L M ~ D E F G ~@2
>`.pickRestart({
  A: "~@6 [bb3,bb5,bb6] [c4,c6,c7]!2 ~ [c4,c6,c7]@2 ~@4", B: "[d4,d6,d7] ~@2 [c4,c6,c7]@3 ~ [f3,f5,f6]",
  C: "[f3,f5,f6]@5 ~ [g3,g5,g6]@2 [g3,g5,g6]@7 ~", D: "~@6 [bb3,bb5,bb6] [c4,c6,c7]!2 ~ [c4,c6,c7]@6",
  E: "[d4,d7] ~@5 [c4,c6,c7]@8 [f3,f5,f6] ~, d6@3 ~@5", F: "[f3,f5,f6]@6 [g3,g5,g6] ~ [g3,g5,g6]@7 ~",
  G: "[f3,f5,c6,f6]@3 [c3,g5,d6,g6] [c3,g5,d6,g6]@4", H: "e6 d6 e5 d5@7 ~@6, [f5,a5] [f4,a4]@4 ~@3",
  I: "e6 d6 e5 d5@5 ~@8, [f5,a5] [f4,a4]@3 ~@4", // F
  J: "[g4,bb4,g5,bb5] [a4,c5,a5,c6] [g4,bb4]@2 [g4,bb4,g5,bb5] [a4,c5,c6] ~@8 [d5,d6]@2, ~@2 bb5 ~@9 [c5,c6]@4", // Gm Am Gm Am D C
  K: "[f4,a4,c5] [e4,g4,c5]", // F C
  L: "~@2 [bb4,d5,bb5,d6]@2 [bb4,d5] [c5,e5] [bb4,d5]@5 ~@3 [d5,d6]@2, [bb4,d5,bb5,d6] ~@7, ~ [c5,e5,c6,e6]@4 ~@7 [c5,c6]@4", // Bb C Bb D Bb C
  M: "[f4,a4,c5]@8 [e4,g4,c5]@7 ~", // F C
})).s("gm_piano").gain(0.14).pan(0.4)

// chords · piano · soft notes
const piano_soft = note("<~@31 A ~@3 B ~@20 A ~@3 B ~@15 A ~@3 B ~@11 A ~@3 B ~@8>".pickRestart({
  A: "~@2 g5 ~@2 a5 [g4,bb4,g5,bb5]@3 ~@7", B: "~@4 [bb5,d6] [c6,e6] [bb5,d6] ~@9",
})).s("gm_piano").gain(0.08).pan(0.4)

// chords · electric guitar clean · "Elec Guitar"
const electric_guitar_clean = note("<~@4 A B C D ~@20 E@2 ~@23 E@2 ~@18 E@2 ~@27 F@3>".pickRestart({
  A: "[c4,f4] ~ c4 [c4,f4] c4 ~ c4!2 [c4,f4] g4 c4 ~ [c4,f4] g4 [c4,f4] c4", // F5
  B: "[c4,d4,f4] ~@2 [c4,f4] ~ c4 ~@2 [c4,f4] [c4,g4] f4 c4 [c4,f4] [c4,g4] ~ c4", // Dm7 F5 C5 F5 C5
  C: "[c4,f4] ~@2 [c4,f4] ~@5 g4 c4!2 ~ g4 c4 ~, ~@4 [c4,f4] ~ [c4,f4] ~", // F5
  D: "[c4,f4] ~@2 [c4,f4] ~@2 [c4,f4] c4 ~ a4 [g4,c5] ~@2 e4 d4 ~, ~@4 [g4,c5] ~ [d4,g4] ~", // F5 C5 G5
  E: "[~@8 [g3,c4]@7 ~, ab4@15 [f2,c3,f3]@14 ~@3, ~ d4@5 b3@2 ~@8, ~@2 b3@3 ab3@3 ~@8, ~@3 ab3 f3@3 d4 ~@8]/2", // C5 F5
  F: "[~@16 [f3,g3,c4]@17 ~@15, ~@5 [f2,c3]@6 ~@5]/3", // Fsus2 F5
})).s("gm_electric_guitar_clean").gain(0.64).pan(0.7)

// other · distortion guitar
const distortion_guitar = note("<~@25 A B C D E@2 ~@19 A B C D E@2 ~@14 A B C D E@2 ~@29>".pickRestart({
  A: "d2", B: "a2@3 e3@3 a3@2", C: "bb2@7 ~", D: "b2@15 ~", E: "[f2@21 ~@11]/2",
})).s("gm_distortion_guitar").gain(0.54).pan(0.3)

// chords · acoustic guitar steel · "Steel Guitar"
const acoustic_guitar_steel = note("<~@17 A B C D A B C D ~@17 A B C D A B C D ~@55>".pickRestart({
  A: "[a3,d4] ~ [a3,d4] [g3,c4] ~ [g3,c4]!2 ~ [g3,c4]@2 ~@2 [f3,a3] c4 [f3,a3] c4", // D5 C5 F
  B: "[a3,c4,e4] ~ [a3,c4,e4] [c4,g4] a3 [c4,g4] [a3,e4] ~ [a3,e4] ~@3 [a3,e4] f4 [a3,e4] ~, ~@12 c4@3 ~", // Am C5 A5
  C: "[bb3,d4,g4] ~ [d4,g4] [c4,f4] bb3 f4 [bb3,d4] ~ [bb3,d4] ~@7", // Gm G5 F5 Bb
  D: "[a3,d4] ~ [a3,d4] [g3,c4] ~ [g3,c4]!2 ~ [g3,c4] ~@7", // D5 C5
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.4)

// chords · acoustic guitar steel · "Steel Guitar" · soft notes
const acoustic_guitar_steel_2 = note("<~@18 A B ~@2 A B ~@19 A B ~@2 A B ~@56>".pickRestart({
  A: "~@6 c4 ~ c4 ~@6 f4", B: "~@5 c4 ~@10",
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.4)

// other · glockenspiel
const glockenspiel = note(`<
  ~@8 A B ~@2 C D ~@2 E F ~@11 G@2 H I J G@2 K C D ~@2 E F ~@11 G@2 H I J G@2 K ~@12 G@2 H I J G@2 K ~@8 G@2 H I J G@2 K
  C D ~@2 E F ~
>`.pickRestart({
  A: "a4@2 bb4@2 c5@2 e4@3 ~@5 e4@2", B: "f4 ~@3", C: "a4@2 bb4@2 c5@2 e4@4 ~@4 e4 ~", D: "f4@3 ~@13",
  E: "g5 a5 f5 g5 d5 f5 c5 d5 a4 c5 g4 a4 f4 g4 d4 f4", F: "f3@3 ~@5", G: "~@7 f4 f5@4 ~@4", H: "~@7 f4 f5@5 ~@3",
  I: "~@10 f5 g5 c5 d5 g4 a4", J: "f3@5 ~@2 f4 f5@4 ~@4", K: "~@8 f5 g5 c5 d5 g4 a4 c4 d4",
})).s("gm_glockenspiel").gain(0.79).pan(0.4)

// chords · pad warm · "Warm Pad"
const pad_warm = note("<~@17 A B C D A B C D ~@17 A B C D A B C D ~@55>".pickRestart({
  A: "[f2,f3,g3,a3,c4]", B: "[a2,g3,c4,e4]", C: "[bb2,c4,d4,f4]", D: "[c3,g3,c4,d4,f4]",
})).s("gm_pad_warm").gain(0.26).pan(0.4)

// chords · glockenspiel
const glockenspiel_2 = note("<~@8 A B ~@2 A B ~@2 C ~@20 A B ~@2 C ~@56 A B ~@2 C ~@2>".pickRestart({
  A: "[f6,a6] ~@5 [f6,c7] ~@9", B: "[f6,bb6,c7] ~ [f6,bb6,c7] ~@13", C: "[c6,f6] ~@5 [c6,g6] ~ [c6,g6] ~@7",
})).s("gm_glockenspiel").gain(0.64).pan(0.6)

// chords · acoustic guitar nylon · "Nylon Guitar"
const acoustic_guitar_nylon = note("<~@62 A B C D E F G H I ~@34>".pickRestart({
  A: "f4@2 g4 f4 a4@2 c5 ~ f5@2 [bb4,g5]@2 [c5,a5]!4", B: "[d5,bb5]@2 [g5,c6] [bb4,f5,a5]@10 ~@3",
  C: "~@9 a5!2 c6 f5!3 a5", D: "f5 c5 c5@5 ~@2 [c5,a5]!2 [bb4,g5]!2 ~ [a4,f5]@2",
  E: "[bb4,g5]@2 [a4,f5] [f4,c5]@6 a4 bb4 c5 f5 c5 bb4 a4", F: "bb4@2 a4 g4@2 f4@6 ~@5",
  G: "~ c5 f5 g5 [c5,a5]@2 g5 [bb4,f5] [bb4,f5]@2 [bb4,e5]@2 [bb4,f5]@2 [bb4,g5]@2", // F Bb5 Bbdim Bb5 Eb
  H: "~ bb4 c5 f5 c5 d5 f5 c5 d5 e5 c5 d5 e5 c5 d5 e5", I: "f5@5 ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.8).pan(0.4)

// drums · kick
const kick = s("bd").struct("<A@28 B A@24 B A@19 B A@29 B ~>".pickRestart({
  A: "x!2 ~@4 x ~ x ~@7", B: "x",
})).gain(0.45)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  [~@7 x ~ x ~@6]!28
  ~
  [~@7 x ~ x ~@6]!24
  ~
  [~@7 x ~ x ~@6]!19
  ~
  [~@7 x ~ x ~@6]!29
  ~@2
>`).gain(0.25)

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

// drums · hihat
const hihat = s("hh").struct(`<
  A B C@3 B C D A B C D C B C D@2 A B C D C B C D A B C D C B C D A B C D C B C D@2 A B C D C B C D A B C D C B C D A B
  C D A B C D C B C D A B C D C B C D A B C D A B C D A B C D C B C D A B C D C B C D@2 ~@2
>`.pickRestart({
  A: "~ x!7", B: "x!7 ~", C: "x!8", D: "x!5 ~ x!2",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@7 A ~@3 A ~@8 A ~@3 A ~@3 B ~@7 A ~@8 A ~@3 A ~@3 B ~@7 A ~@3 A ~@7 B ~@7 A ~@3 A ~@3 A ~@7 A ~@7
>`.pickRestart({
  A: "~@7 x", B: "x!3 ~@5",
})).gain(0.45)

// drums · mid tom
const mid_tom = s("mt").struct("<~@62 [~@11 x ~@4] ~@5 [~@7 x ~@8] ~@36>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~@3 A ~ B ~ A ~ B ~ A ~ B@2 ~ A ~ B ~ 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 ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B@2 ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@5 x ~@2",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  A ~@3 A ~@3 A ~@3 A ~@4 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@4 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A
  ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@4 A ~
>`.pickRestart({
  A: "x",
})).gain(0.4)

// drums · ride bell
const ride_bell = s("rd").struct("<~@63 [~@3 x ~ x ~@2] ~@2 [~@8 x!2 ~ x!2 ~@3] ~@38>").gain(0.35)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct("<~@8 [~ x!3] ~@96>").gain(1.29)

stack(
  synth_strings_2, bass, bass_soft, piano, piano_soft, electric_guitar_clean, distortion_guitar, acoustic_guitar_steel,
  acoustic_guitar_steel_2, glockenspiel, pad_warm, glockenspiel_2, acoustic_guitar_nylon, kick, kick_soft, snare, hihat,
  low_tom, mid_tom, open_hat, crash, ride_bell, jingle_bells
)

More by Young Paul