Strudelify

Every Time You Go Away

Young Paul

KeyF majorTempo95 bpm
0:00/0:00
// Every Time You Go Away — Young Paul
// 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: edit a riff to change every repeat.

// bass · fretless bass · "Bass"
const bass = note(`<
  A B C D E F G D H I J K L I M N D O P Q R O P Q S T@2 U V A W X D E F X D Y I Z AA O P Q AB O P Q S AC AD U AE A W X D
  E F X D Y AF M N AG I Z AH AC AD U AE A W X D E F X D ~@4 AI AJ AK D AI AL AM AN O P Q AB O P Q AO ~
>`.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@7 ~",
  D: "c3@4 ~@2 c3 ~ c3@6 ~@2", E: "f2@4 ~@2 f2 ~ f2@3 ~ c3@2 db3@2", F: "d3@4 ~@3 a3 f4 a3 e4 a3 d4 a3 f3 a3",
  G: "g3@5 ~ g2 ~ g2@7 ~", H: "f2@3 f3 ~@2 f2 ~ f2@2 f3@3 c3 f2 g2", I: "bb2@4 ~@2 bb2 ~ bb2 ~@7",
  J: "bb2@3 bb2 ~@2 bb2 ~ bb2 ~@3 bb3@4", K: "c3@3 c3 ~@2 c3 ~ c3 ~@7", L: "f2@3 f3 ~@2 f2 ~ f2 ~ f3@3 c3 f2 g2",
  M: "bb2@2 ~ bb2 ~@2 bb2 ~ bb2 ~@3 bb3@4", N: "c3@2 ~ c3 ~@2 c3 ~ c3@2 ~@6", O: "f2@2 ~ f2 ~@2 f2 ~ f2@4 ~@4",
  P: "a2@2 ~ a2 ~@2 a2 ~ a2@4 ~@4", Q: "bb2@2 ~ bb2 ~@2 bb2 ~ bb2@4 ~@4",
  R: "c3@2 ~ c3 ~@2 c3 ~ c3 ~ c4 d4 g3 c3 f3 c3", S: "c3@2 ~ c3 ~@2 c3 ~ [g4,c5]@3 ~ [d4,g4] [c4,f4] [d4,g4]@2",
  T: "[d3@4 ~@2 a3 e4 f4 ~ [f4,g4] e4 a3@3 g3@5 ~@4 [f4,ab4]@4 [e4,g4]@4]/2", U: "bb2@4 ~@2 bb2 ~ bb2@6 ~@2",
  V: "b2@4 ~@2 b2 ~ f4 b3 d4 b3 ab3 d4 b3 ab3", W: "d3@4 ~@2 d3 ~ d3@2 ~ d3 a3 bb3 a3@2", X: "g3@4 ~@2 g2 ~ g2@6 ~@2",
  Y: "f2@4 ~@2 f2 ~ f2 ~ f3@3 c3 f2 g2", Z: "bb2@2 ~ bb2 ~@2 bb2 ~ bb2@2 ~@2 bb3@4", AA: "c3@2 ~ c3 ~@2 c3 ~ c3@6 ~@2",
  AB: "c3@2 ~ c3 ~@2 c3 ~ c3 ~ c4 d4 g3 c3 g3 c3", AC: "d3@4 ~@2 a3 e4 f4 ~ [f4,g4] e4 a3@2 d3@2",
  AD: "g3@3 ~ [db4,e4]@2 [e4,a4]@2", AE: "b2@4 ~@2 b2 ~ f4 b3 d4 ab3 f3 b3 ab3 f3", AF: "bb2@2 ~ bb2 ~@2 bb2 ~ bb2 ~@7",
  AG: "f2@4 ~@2 f2 ~ f2@2 f3@3 c3 f2 g2", AH: "c3@2 ~ c3 ~@2 c3 ~ c3@2 ~ e3 e3@4",
  AI: "f2@4 ~@2 f2 ~ f2@2 ~ f2 c3@2 db3@2", AJ: "d3@4 ~@3 d3 a3 d3 d4 d3 g3 f3 bb2 a2",
  AK: "g2@4 ~@2 g2 ~ g2@4 ~ d3 g2@2", AL: "d3@4 ~@3 g4 e4@2 c4 a3 d4 ~@2 d3", AM: "g2@4 ~@2 g2 ~ g2@6 bb2 b2",
  AN: "c3@4 ~@2 c3 ~ c3@4 ~@4", AO: "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 D@2 B E F G@2 H F I@4 J K L M N K L O P Q R S D@2 B C D@2 B E T U@3 J K L M N K L O P Q R S D@2 B C D@2 B E V
  W@2 X V W@2 Y P Z R S D@2 B C D@2 B E ~@6 AA@3 AB AC AD J K L M N K L O ~
>`.pickRestart({
  A: "[[f3,g4] [d3,d4], [f4,a4,c5]@31 ~]/2", B: "[g3,f4,g4,bb4,d5]", C: "[a4,d5]@3 [g4,c5]@5, c4",
  D: "[[f3,g4] [d3,d4], [f4,a4,c5]]/2", E: "[a4,d5]@6 [g4,c5]@9 ~, c4@15 ~", F: "a4@3 g4@5, [c4,f4]",
  G: "[[c4,f4,bb4]@4 f4@7 g4@5, ~ [c4,d4]@3]/2", H: "f4@3 e4 ~@4, [c4,g4]",
  I: "[[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
  J: "~@8 c4@7 ~, [f3,g3,a3]", K: "e3 e4, [g3,a3,c4]", L: "f3 f4, [a3,bb3,d4]", M: "~ g4, [c3,g3,c4]",
  N: "~ c4, [f3,g3,a3]@15 ~", O: "[c3,g3,c4,g4]", P: "[a3,d4,f4]", Q: "[a3,f4]@3 [g3,e4]@5, db4", R: "[bb3,d4,f4]",
  S: "[b3,d4,f4,ab4]@15 ~", T: "[f4,a4]@5 ~ [e4,g4]@10, c5",
  U: "[d4@6 d4 ~@25 g4@14 ~@2, f4@19 ~@5, bb4@2 ~, ~@3 c4@20 ~]/3", V: "[f4,a4]@3 [e4,g4]@5, c5", W: "[c4,f4,bb4,c5]/2",
  X: "[c4,g4,c5], f4@3 ~@5", Y: "[c4,g4,c5]@7 ~", Z: "[a3,f4]@5 ~ [g3,e4]@10, db4",
  AA: "[a4@3 ~@8 e4 ~@4 [f4,a4]@8, f4@11 ~@13, d4@15 ~ c4@32, ~@3 g4@13 ~@8]/3", AB: "[c4,d4,f4,a4]",
  AC: "[bb3,d4,f4], g4@3 ~@5", AD: "[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 E F ~@9 G ~ H ~@3 I J ~@2 I J ~ A B C ~@8 G ~ H ~@3 I J ~@2 I J ~ A B C ~ D E F G ~ H ~@3 I J ~@2 I J
  ~@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: "[d4,d6]@4 ~@2 [c4,c6]@6 ~@2 [f3,f5] ~", F: "[f3,f5]@5 ~ [g3,g5] ~ [g3,g5]@6 ~@2",
  G: "[e6,f6,a6] d6 [e5,f5,a5] d5 [e4,f4,a4] ~@11", H: "[e6,f6,a6] d6 [e5,f5,a5] d5 [e4,f4,a4]@2 ~@10",
  I: "[f4,d5] [g4,e5] [e4,c5] ~ [f4,d5]@2 ~@10", J: "[a5,d6]@4 ~@2 [g5,c6] ~ [g5,c6]@4 ~@4",
})).s("gm_piano").gain(0.56)

// other · brass section · "Sitar g."
const brass_section = note(`<
  ~@8 A B ~@2 C D ~@2 E F ~@10 G H@3 I J H@2 I A B ~@2 F ~@10 G H@3 I J H@2 I K ~@10 G H@3 I J H@2 I ~@21
>`.pickRestart({
  A: "a3@2 bb3@2 c4@2 e3@7 ~ e3@2", B: "f3@3 ~@5", C: "a3 bb3 c4 e3@3 ~ e3", D: "f3@7 ~@9",
  E: "g4 a4 f4 g4 d4 f4 c4 d4 a3 c4 g3 a3 f3 g3 c3 d3", F: "f2 ~@3", G: "ab4@2 f4@2 d4@2 b3@2 d3@2 ab3@2 b3@2 ab3 ~",
  H: "~@7 f3 f4@6 ~@2", I: "~@10 f4 g4 c4 d4 g3 a3", J: "f3@4 ~@3 f3 f4@6 ~@2", K: "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 Young Paul