Strudelify

take me to church

Hozier

KeyG majorTempo63 bpm
0:00/0:00
// take me to church — Hozier
// 63 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/4 at bar 1, 4/4 at bar 7, 3/4 at bar 8, 4/4 at bar 11, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5950354; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 65 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(63/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 · piano
const piano = note(`<
  A@2 B C@2 B D@3 B E@4 F G H I J K H I J K L@2 M N L@2 M N O H I J K H I J K P Q P Q P Q P Q P Q R S T U@8 V@3
>`.pickRestart({
  A: "[~@3 [e2,e4,g4,b4]@2 [a2,e4,a4,c5] [e2,e4,g4,b4]@2]/2", B: "[a2,e4,a4,c5] [g2,g4,b4,d5]@2 [a2,e4,a4,c5]",
  C: "[[e2,e4,g4,b4]@2 [a2,e4,a4,c5] [e2,e4,g4,b4]@2 [a2,e4,a4,c5] [e2,e4,g4,b4]@2]/2", // Em Am Em Am Em
  D: "[[e2,e4,g4,b4]@2 [a2,e4,a4,c5] [d2,d4,f#4,a4]@2 [c2,c4,e4,g4]@2 [e2,e4,g4,b4]@2 [a2,e4,a4,c5] [e2,e4,g4,b4]@2]/3", // Em Am D C Em Am Em
  E: "[[e2,e4,g4,b4]@8 [a2,e4,a4,c5]@4 [d2,d4,f#4,a4]@8 [c2,c4,e4,g4]@8 [c2,c4,e4,g4]@15 ~ [g2,g4,b4,d5]@8 [c3,g4,c5,e5]@4 [g2,g4,b4,d5]@8]/4", // Em Am D C G C G
  F: "[c3,g4,c5,e5] [g2,g4,b4,d5]@2 [c3,g4,c5,d#5]", G: "[g2,g3,b3,d4]@8 g2 f#2@3 f#2 f2@3", H: "[b3,e4,g4]!8, e2@15 ~",
  I: "[b3,d#4,f#4]!8, b1@15 ~", J: "[b3,d4,g4]!3 [g2,b3,d4,g4] [c4,e4,a4]!3 [a2,c4,e4,a4], g2@3 ~ a2@3 ~",
  K: "[b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [e2,b3,e4,g4]@2 a2 g2@3 g2 f#2@3, e2@3 ~@5", // Em
  L: "[[e2,e4,g4,b4]@2 [a2,e4,a4,c5] [e2,e4,g4,b4]@2 [a2,e4,a4,c5] [g2,g4,b4,d5]@2]/2", // Em Am Em Am G
  M: "[a2,e4,a4,c5] [e2,e4,g4,b4]@2 [a2,e4,a4,c5]", N: "[d2,d4,f#4,a4] [c2,c4,e4,g4]",
  O: "[c2,c4,e4,g4]@8 g2 f#2@3 f#2 f2@3", // C
  P: "[c4,e4,g4]@2 ~ c2 [b3,d4,g4]@2 ~ g2, c2@3 ~ g2@3 ~, ~ [c4,e4,g4] ~ [b3,d4,g4]", // C G C G
  Q: "[b3,d#4,f#4]@2 ~ f#2 [g2,b3,e4,g4]@2 [e2,b3,e4,g4]@2, f#2@3 ~@5, ~ [b3,d#4,f#4] ~@2", // B Em B
  R: "[e4,g4,b4]!3 [d3,e4,g4,b4] [e4,g4,b4]!3 [c3,e4,g4,b4], d3@3 ~ c3@3 ~", S: "[e4,g4,c5]!4 [g2,g3,b3,d4]@4, c3 ~",
  T: "[c3,g3,c4,e4] [g2,g3,b3,d4]@2 [c3,g3,c4,d#4]", // C G Cm
  U: "[[g2,g3,b3,d4]@8 [c3,g3,c4,d#4]@4 [g2,g3,b3,d4]@8 g2 f#2@3 f#2 f2@3 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [g2,b3,d4,g4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 [a2,c4,e4,a4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [e2,b3,e4,g4]@2 a2 g2@3 g2 f#2@3 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2, ~@28 e2@15 ~ b1@15 ~ g2@6 ~@2 a2@6 ~@2 e2@6 ~@10 e2@15 ~ b1@15 ~ g2@4]/8", // G Cm G Em B G Am Em …
  V: "[[b3,d4,g4]@2 [g2,b3,d4,g4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 [a2,c4,e4,a4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [b3,e4,g4]@2 [e2,b3,e4,g4]@2 a2 g2@3 g2 f#2@3 [e2,e4,g4,b4]@15 ~@5, ~@2 a2@3 ~ e2@3 ~@15]/3", // G Am Em
})).s("gm_piano").gain(0.4)

// bass · electric bass pick · "Bass Guitar"
const bass = note(`<
  ~@7 A@2 B C D@2 ~ E F G H I J G H I J K@2 L M K@2 L M N G H I J G H I J O P O P O P O P O P Q R ~ S@8 T@3
>`.pickRestart({
  A: "[~@3 e1@2 a1 e1@2]/2", B: "a1 g1@2 a1", C: "e1@2 c2 d2", D: "[c#2 c2@2 c2@4 ~]/2", E: "~@3 d#2",
  F: "g2@8 g2 f#2@3 f#2 f2@3", G: "e2@3 e2 e2@2 e2 c2", H: "b1@3 b1 b1@3 d2", I: "g2@3 g2 a1@3 c2",
  J: "e2@6 e2@2 a2 g2@3 g2 f#2@3", K: "[e2@2 a2 e2@2 a2 g2@2]/2", L: "a2 e2@2 a2", M: "d2 c#2 c2@2",
  N: "c2@8 g2 f#2@3 f#2 f2@3", O: "c2 g2", P: "f#2 g2", Q: "d2@3 d2 c2@3 c2", R: "c2!2 e2!2 ~@4",
  S: "[~@8 d#2@4 g2@8 g2 f#2@3 f#2 f2@3 e2@6 e2@2 e2@4 e2@2 c2@2 b1@6 b1@2 b1@6 d2@2 g2@6 g2@2 a1@6 c2@2 e2@6 e2@2 a2 g2@3 g2 f#2@3 e2@6 e2@2 e2@4 e2@2 c2@2 b1@6 b1@2 b1@6 d2@2 g2@4]/8",
  T: "[~@2 g2@2 a1@6 c2@2 e2@6 e2@2 a2 g2@3 g2 f#2@3 e1@8 ~@12]/3",
})).s("gm_electric_bass_pick").gain(0.4)

stack(piano, bass)

More by Hozier