Strudelify
0:00/0:00
// Fix You — Words and Muisc byGUY BERRYMAN CHRIS MARTIN JON BUCKLAND & WILL CHAMPION
// 70 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/27414; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 68 bars on a 16-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 · [...]/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 · piano
const piano = note(`<
  ~@3 A@2 B@2 C@2 D E F@7 E ~ G H@2 I@2 J@3 K@2 L M@2 E ~ G N O I@2 P ~@4 Q R S T Q U V@2 Q R S T Q U V@2 G N O N W X@2
>`.pickRestart({
  A: "[~@13 bb3!2 g4@3 g4@2 eb4@2 bb3!2 eb4@2 eb4@2 d4@4]/2",
  B: "[c4@4 ~@9 bb3!2 g4@3 g4@2 eb4@3 bb3 eb4!2 eb4@2 d4@4]/2",
  C: "[bb3@4 ~@9 bb3!2 g4@3 g4@2 eb4@2 bb3@2 eb4@2 eb4@2 d4@4]/2", D: "c4@2 ~@3 bb3 eb4 f4", E: "g4@7 bb4@5 eb4@4",
  F: "[eb4@4 ~@9 bb3!2 g4@3 g4@2 g4@2 g4@2 g4@2 ~ ab4 bb4@8 ~@9 bb4 c5 bb4@3 bb4 ab4 g4@2 ~ bb3 eb4@2 ~ eb4 d4 c4@7 ~@9 bb3!2 g4@3 g4@2 g4@2 g4 ab4 bb4@3 eb4 f4@8 ~@6 bb3@2 eb4@2 f4@2]/7",
  G: "~@2 ab4 g4", H: "[f4@3 eb4 d4@3 c4 bb3@4 c4@2 eb4@6 ~@4 ab4@4 g4@4]/2",
  I: "[f4@3 eb4 d4@3 c4 bb3@4 c4@2 eb4@6 ~@2 eb4@2 ab4@4 g4@4]/2",
  J: "[f4@8 ~@3 eb4 g4@2 eb4@10 ~@5 bb3!2 g4@3 g4@2 eb4@2 bb3@2 eb4@2 eb4@2 d4@4]/3",
  K: "[c4@8 ~@5 bb3!2 g4@3 g4@2 eb4@3 bb3 eb4@2 eb4@2 d4@4]/2", L: "eb4@8 ~@4 bb3!3 g4",
  M: "[g4@2 g4@4 ab4 g4 f4 f4@3 [f4,g4] eb4@7 ~@6 bb3@2 eb4@2 f4@2]/2", N: "f4@3 eb4 d4@3 c4 bb3@4 c4@2 eb4@2",
  O: "eb4 ~ ab4 g4", P: "g4@2 ab4 g4 f4@4 ~@3 eb4 g4@2 eb4@2", Q: "~@8 g4@2 ~ g4@5", R: "~@6 eb4@2 ab4@2 ~ ab4 g4@4",
  S: "~@4 eb4@3 eb4 eb4@3 eb4@2 f4@2 ~", T: "d4@3 d4 d4@4 d4@4 d4@4", U: "~@6 eb4@2 ab4@2 ~ ab4 g4@2 g4@2",
  V: "[g4@3 f4 eb4@3 c4 bb3@3 eb4@3 d4@10 ~@8]/2", W: "eb4@2 ~ eb4 ab4@2 g4@2", X: "[f4@8 ~@3 eb4 g4@2 eb4@18]/2",
})).s("gm_piano").gain(0.3)

// other · piano
const piano_2 = note("<~@12 A@8 B C D E F G ~ A@8 B C D E F G H@3 I H@3 I J K L M H@3 I J K L A ~@7>".pickRestart({
  A: "eb4 d4", B: "g4@2 g4!2", C: "c5@4 bb4@2 eb5 d5", D: "c5@2 bb4!2", E: "bb4@2 eb5 d5", F: "c5@2 c5!2", G: "bb4@3 ~",
  H: "eb4!12 ~ bb4!3", I: "eb4!4 d4!8 ~ d4!3", J: "bb4!2 bb4@6", K: "ab4!2 ab4@6", L: "g4", M: "f4",
})).s("gm_piano").gain(0.3)

// other · piano · soft notes
const piano_soft = note(`<
  ~@61
  [g4@2 g4!2]
  [c5@4 bb4@2 eb5 d5]
  [c5@2 bb4!2]
  [bb4@2 eb5 d5]
  [c5@2 c5!2]
  [bb4@3 ~]
  [~ d5]
>`).s("gm_piano").gain(0.2)

// other · piano
const piano_3 = note(`<
  A B C D E@2 F G E@2 F G H@7 I J K J L M N ~ H@7 I J K J L M N ~@4 O P Q R S@3 T O P Q R S@3 I J K J L M N U
>`.pickRestart({
  A: "eb3@7 f3 g3@4 bb3@4", B: "c4 bb3", C: "eb3@7 f3 g3@4 eb3@4", D: "c3 bb2", E: "g3/2", F: "g3", G: "g3 f3",
  H: "~ eb4 ~ d4", I: "~ eb4 d4 bb3", J: "c4@2 c4!2", K: "eb4 d4", L: "g4@2 f4 bb3", M: "c4@2 d4 eb4", N: "bb3@3 ~",
  O: "~@8 eb3@2 ~ eb3@5", P: "~@6 eb3@2 bb3@2 ~ bb3 bb3@4", Q: "bb3!2 bb3@2", R: "c4 d4 eb4 f4", S: "eb4!12 ~ eb4!3",
  T: "eb4!4 d4!8 ~ d4!3", U: "~ bb3",
})).s("gm_piano").gain(0.25)

// other · piano
const piano_4 = note(`<
  A B C D A B C D A B C D E F E F E F E ~ G B H B G I ~ E F E F E F E ~ G B H B G I ~@4 J K L H M N O P J K L H M N O ~
  G B H B G I Q
>`.pickRestart({
  A: "eb3@7 f3 g3@4 bb3@4", B: "c4 bb3", C: "eb3@7 f3 g3@4 eb3@4", D: "c3 bb2", E: "~ g3@2 ~@2 g3@2 ~",
  F: "~ g3@2 ~@2 f3@2 ~", G: "ab3@2 ab3!2", H: "f3 g3 ab3 bb3", I: "bb3@3 ~", J: "~@8 bb3@2 ~ bb3@5",
  K: "~@6 bb3@2 c4@2 ~ c4 bb3@4", L: "g3!2 g3@2", M: "g3!2 g3@6", N: "ab3!2 ab3@6", O: "c4", P: "bb3", Q: "~ eb3",
})).s("gm_piano").gain(0.25)

// other · piano
const piano_5 = note(`<
  ~@12 A B C D A B C D E F E F E G ~ A B C D A B C D E F E F E F H I H J H I H J K I H J H I H J K I H D E F E F E G L
>`.pickRestart({
  A: "eb3@7 f3 g3@4 bb3@4", B: "c4 bb3", C: "eb3@7 f3 g3@4 eb3@4", D: "c3 bb2", E: "ab2", F: "bb2", G: "bb2@3 ~",
  H: "eb3!8", I: "ab2!8", J: "bb2!8", K: "c3!8", L: "~ g3",
})).s("gm_piano").gain(0.3)

stack(piano, piano_2, piano_soft, piano_3, piano_4, piano_5)