Strudelify

Every Time You Go Away

Darryl Hall

KeyF majorTempo84 bpm
0:00/0:00
// Every Time You Go Away — Darryl Hall
// 84 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3424626; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 50 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(84/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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.

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B C D A B C D E@2 F G H I J K L M N O P Q R S T U V W X Y Z AA AB M AC AD P Q AE S T U AE S T AF AG AH@3
>`.pickRestart({
  A: "a4@3 a4@4 a4", B: "bb4@3 bb4@3 c5@2", C: "c5@3 c5@4 f5", D: "f5@3 g5 g5@4",
  E: "[f5@6 e5@2 e5@4 ~@2 f5@8 ~@2 f5@2 f5@2 f5@2 f5!2]/2", F: "e5 d5 c5 c5@9 c5 d5 c5 d5",
  G: "g5@3 f5 f5@2 f5 f5@3 f5@2 f5@2 f5@2", H: "d5@3 c5@5 c5@4 g5@2 g5 a5", I: "a5@4 f5@4 f5@2 f5@2 f5@2 f5!2",
  J: "e5 d5 e5 d5 c5@2 ~@2 c5@4 c5 d5 c5 d5", K: "g5@3 f5 d5!4 d5@2 bb4@2 c5@2 d5@2", L: "d5@3 c5 c5@2 c5@2",
  M: "d5@2 ~@2 f5@3 f5@4 g5 a5@2 ~@2", N: "e5!2 f5 g5@3 ~@2", O: "d5!2 g5 a5@3 ~@2",
  P: "f5@2 d5 d5@3 ~@2 f5@2 d5 d5@3 ~@2", Q: "f5 g5 a5@8 ~@4 f5@2", R: "f5@4 ~@4 c5@6 bb4 a4", S: "bb4@4 ~@3 c5",
  T: "c5@6 ~@6 e5 d5 e5 f5", U: "f5@6 e5 d5 c5 d5 f5@2 ~@4", V: "~@8 c5@6 bb4 a4", W: "bb4 ~", X: "~@12 e5 d5 e5 f5",
  Y: "f4@2 g4@2 a4@2 c5@2 f5@2 g5@2 f5!4", Z: "g5@3 f5@3 ~@2 g5@3 f5@3 ~@2", AA: "g5@3 f5@3 g5@6 f5@4",
  AB: "f5@3 e5 e5@4", AC: "e5!2 f5 g5@2 ~@3", AD: "d5!2 g5 a5@2 ~@3", AE: "f5@6 ~@2 c5@6 bb4 a4", AF: "db5", AG: "d5",
  AH: "f5",
})).s("gm_trumpet").gain(0.3).pan(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B C D A B C D E@2 F G H I@2 J K L M N O P Q R S T Q R U V W X D L M N O P Q R S T Q R S Y@2 Z AA Z
>`.pickRestart({
  A: "a4 bb4 c5 e4@4 e4", B: "f4@6 bb4 c5 c5@2 c5@4 c5@2", C: "d5@3 d5@4 f5", D: "f5@3 g5 g5@4",
  E: "[g5@6 g5@2 g5@4 ~@2 f5@6 ~@3 f4 f5@2 f5@2 f5@2 f5!2]/2", F: "e5 d5 c5@6 c5@4 e5 f5 e5 f5",
  G: "f5@3 bb4 bb4@2 bb4 bb4@3 bb4@2 c5@2 d5@2", H: "a4@4 a4 g4 f4 g4 g4@2 ~@6",
  I: "[~@6 f5@6 f5@2 g5@6 e5 d5 e5 d5 c5@2 ~@2 d5 a4 c5 d5]/2", J: "d5@4 ~@2 bb4!2 bb4@2 bb4 c5 c5@2 d5@2",
  K: "a4@4 a4 g4 f4 g4 g4@2 ~@2 f4@4", L: "f4@2 ~@2 f5@3 f5@4 g5 a5@2 ~@2", M: "e5@2 e5@2 f5@2 g5@2 g5 f5 e5@6",
  N: "~@2 d5 f5@3 d5 f5", O: "ab5@2 g5 f5@3 f5 d5 f5@2 d5 f5@2 d5 f5@2", P: "~ d5 c5@2 ~@4 a4@2 c5@2 f5@2 g5@2",
  Q: "f5@6 a4@2 a4 g4 f4@2 ~@4", R: "~@3 bb4!3 c5 d5", S: "d5@6 c5 bb4 c5@4 ~@4", T: "~@4 a4 c5 f5 g5",
  U: "d5@2 c5 bb4 c5@4 ~@8", V: "f4@2 g4@2 a4@2 c5@2 f5@2 g5@2 a5!4", W: "bb5@3 a5@3 ~@2 g5@3 f5@3 ~@2",
  X: "bb5@3 a5@3 g5@6 f5@4", Y: "bb4", Z: "e5", AA: "db5",
})).s("gm_alto_sax").gain(0.3).pan(0.7)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A B C D A B C D E@2 F G H I J K L M N O P Q R S T U V W X Y Z AA AB M N O P Q V W AC U V W AC AD AE AF AG AE
>`.pickRestart({
  A: "a3 bb3 c4 e3@4 e3", B: "f3@6 bb3 c4 c4@2 c4@4 c4@2", C: "d4@3 d4@4 f4", D: "f4@3 e4 e4@4",
  E: "[f4@3 g4 g4@2 ~ a4@4 ~ f4!4]/2", F: "a4@3 a4@5 a4@4 a4@4", G: "f4@2 f4!6", H: "g4@3 g4@5 g4@4 e4 d4 e4 f4",
  I: "a4@2 a4@2 f4!2 f4@2", J: "a4@3 a4@5 a4@8", K: "g4@2 f4@2 f4@2 f4 e4", L: "e4 g4!2 f4", M: "a4@3 a4@3 a4@2",
  N: "g4@3 g4@3 g4@2", O: "f4@3 g4@3 g4@2", P: "ab4 f4!3", Q: "a4!2 ~@2 a3 c4 f4 g4", R: "f4@6 a3@2 a3 g3 f3@2 ~@4",
  S: "~@3 bb3!3 c4 bb3", T: "a3@6 bb3 a3 g3@4 ~@4", U: "g4@6 f4 g4 a4 f4@5 ~@2", V: "f4@6 a3@2 a3 g3 f3 ~@5",
  W: "~@3 bb3!3 c4 d4", X: "a3@2 g3 f3 g3@4 ~@8", Y: "a3@2 a3@2 a3 c4 f4!2", Z: "e4@3 d4@3 ~@2 e4@3 d4@3 ~@2",
  AA: "g4@3 f4@3 g4@6 f4@4", AB: "g4@3 g4 g4@4", AC: "a3@6 g3 f3 g3@4 ~@4", AD: "c4", AE: "f4", AF: "g4", AG: "gb4",
})).s("gm_tenor_sax").gain(0.3).pan(0.2)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax_2 = note(`<
  A B C D A B C D E@2 F G H I J K L M N M O P Q R S T U V W X Y Z D M N M O P U V AA T U V AA AB AC AD AE AD
>`.pickRestart({
  A: "a3 bb3 c4 e3@4 e3", B: "d3@6 bb3 c4 c4@2 c4@4 c4@2", C: "c4@3 c4@4 c4", D: "e4@3 e4 e4@4",
  E: "[e4@4 e4 ~@2 f4@4 ~ c4!4]/2", F: "c4@3 c4 c4@4 c4@4 c4 d4 c4 d4", G: "d4@2 d4!6",
  H: "e4@3 e4@5 e4@4 c4 bb3 c4 d4", I: "f4@2 f4@2 c4!2 c4@2", J: "c4@3 c4@5 c4@4 c4 d4 c4 d4",
  K: "d4@2 c4 bb3 d4 c4!2 d4", L: "d4@3 e4 e4@4 e4@4 d4@4", M: "d4@3 d4@3 d4@2", N: "db4@3 db4@3 db4@2", O: "d4!4",
  P: "f4!2 ~@2 a3 c4 f4 g4", Q: "f4@6 a3@2 a3 g3 f3@2 ~@4", R: "~@3 bb3!3 c4 bb3", S: "a3@6 bb3 a3 g3@4 ~@4",
  T: "~@4 a3 c4 f4 g4", U: "f4@6 a3@2 a3 g3 f3 ~@5", V: "~@3 bb3!3 c4 d4", W: "a3@2 g3 f3 g3@4 ~@8",
  X: "f3@2 f3@2 f3 a3 c4!2", Y: "d4@3 c4@3 ~@2 d4@3 c4@3 ~@2", Z: "d4@3 c4@3 c4@6 d4@4", AA: "a3@6 g3 f3 g3@4 ~@4",
  AB: "g4", AC: "d4", AD: "e4", AE: "bb3",
})).s("gm_tenor_sax").gain(0.3).pan(0.8)

// other · trombone
const trombone = note(`<
  A B C D A B C D E F G H I J K L M N O N P Q R S T U R S T V W X Y N O N P Z R S T U R S T AA AB@2 AC AD
>`.pickRestart({
  A: "a3@3 a3@4 a3", B: "bb3@3 bb3@3 bb3@2", C: "bb3@3 bb3@4 g3", D: "g3@3 g3 c4@4", E: "c4@4 c4@3 ~",
  F: "a3@3 ~ a3@3 ~", G: "a3@3 a3 a3@4 a3@4 a3@4", H: "bb3@3 bb3 bb3@2 bb3@2 bb3@2 bb3@2 c4@2 d4@2",
  I: "c4@3 e4 e4@3 f4", J: "f4@3 ~ a3@3 ~", K: "a3@3 a3@9 ~@4", L: "bb3@2 bb3!4 c4 d4", M: "c4@3 e4 e4@2 e4@2",
  N: "d4@3 d4@3 d4@2", O: "e4@3 e4@3 e4@2", P: "d4!4", Q: "c4@2 ~@2 f3!2 e3!2", R: "d3@3 d3 a2@3 a3", S: "d4 c4 bb3 a3",
  T: "g3 c3 c4 bb3", U: "a3@2 ~@2 f3!2 e3!2", V: "f3@2 f3@2 f3 a3 c4!2", W: "bb3@3 a3@3 ~@2 g3@3 f3@3 ~@2",
  X: "bb3@3 a3@3 g3@6 f3@4", Y: "g3@3 c4 c4@4", Z: "c4 ~@3 f3!2 e3!2", AA: "e4", AB: "bb3", AC: "ab3", AD: "c4",
})).s("gm_trombone").gain(0.15).pan(0.3)

// other · trombone
const trombone_2 = note(`<
  A B C D A B C D E F G H I F J K L M N O P Q R S T U R S T V W X Y M N O P Q R S T U R S T Z AA AB AC AD
>`.pickRestart({
  A: "f3@3 f3@4 e3", B: "d3@3 d3@3 d3@2", C: "d3@3 d3@4 c3", D: "c3@3 c3 g3@4", E: "g3@4 g3@3 ~", F: "a3@3 ~ f3@3 ~",
  G: "e3@3 e3 e3@4 e3@4 e3@4", H: "bb3@3 bb3 bb3@2 bb3@2 bb3@2 bb3@2 c4@2 d4@2", I: "c4@3 c4 c4@3 c4",
  J: "e3@3 e3@9 ~@4", K: "bb3@2 bb3!4 c4 d4", L: "c4@3 c4 c4@2 c4@2", M: "d4@3 d4@3 d4@2", N: "a3@3 a3@3 a3@2",
  O: "bb3@3 bb3@3 bb3@2", P: "b3!4", Q: "a3@2 ~@2 a3 c4!2 db4", R: "d4@3 a3 d3@3 a3", S: "g2 a2 bb2 d3",
  T: "c3@4 ~@4 g3@6 f3 e3", U: "f3@2 ~@2 a3 c4!2 db4", V: "f3!3 a3", W: "bb3@3 bb3@3 ~@2 bb3@3 bb3@3 ~@2",
  X: "bb3@3 bb3@3 bb3@6 bb3@4", Y: "g3@3 c3 c3@4", Z: "db4", AA: "a3", AB: "e3", AC: "gb3", AD: "f3",
})).s("gm_trombone").gain(0.13).pan(0.3)

// bass · tuba
const bass = note(`<
  A B C D A B C D E F G H I F G H I J G C K L M N O P M N O A B C Q J G C K L M N O P M N O R S T U V
>`.pickRestart({
  A: "f2@4 f3@2 f2@2 f2@2 c3 d3 c3@2 f2@2", B: "bb2@2 f3 bb2 bb2@2 bb3 bb2",
  C: "bb2@3 bb2 bb3@2 bb2@2 bb2@4 bb3@2 bb2@2", D: "c3@3 c3 c4@2 c3@2 c3@4 c4@2 c3@2", E: "c3@2 c4 c3 c3@2 c3@2",
  F: "f2@3 f2 f3@2 f2@2 f2@4 f3@2 f2@2", G: "a2@3 a2 a3@2 a2@2 a2@4 a3@2 a2@2",
  H: "bb2@3 bb2 bb3@2 bb2@2 bb2@4 bb2@2 bb3@2", I: "c4@3 c4 c3@2 c3@2 c3@2 c3 d3 c3@2 c3@2",
  J: "d3@3 d3 d3@2 d3@2 d3@4 d3@2 d3@2", K: "b2@2 b2@2 b2@2 b2@2 b2@2 b2@2 b2@2 ab2 g2", L: "f2!2 f3 f2 f2@2 c3 db3",
  M: "d2@2 d2@2 d3@2 d2@2 d2@4 a2 bb2 a2@2", N: "g2!2 g3 g2 g2@2 g3 g2", O: "c3@2 c3 c2 c2@2 c3 c2",
  P: "f2@2 f3 f2 f2@2 c2 db2", Q: "c3@3 c3 c3@2 c2@2 c2@4 c3@2 c2@2", R: "c3", S: "bb2", T: "g2", U: "gb2", V: "f2",
})).s("gm_tuba").gain(0.3).pan(0.7)

stack(trumpet, alto_sax, tenor_sax, tenor_sax_2, trombone, trombone_2, bass)