Strudelify

Hallelujah - Drum Corps Arrangement

Leonard Cohen

KeyB♭ majorTempo90 bpm
0:00/0:00
// Hallelujah - Drum Corps Arrangement — Leonard Cohen
// 90 bpm, 12/8, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (12/8 at bar 1, 6/8 at bar 10, 12/8 at bar 11) are rendered on a constant 12/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5121419; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 34 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/6)

// 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.

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<~@4 A B C D ~@6 E F G H I J K L@3 M@6 ~@4>".pickRestart({
  A: "~@6 d4@2 d4 d4@2 d4", B: "eb4@2 eb4 f4@2 f4 a4@3 g4@3", C: "g4@3 a4@3 a4@2 a4 a4@2 a4",
  D: "a4@2 a4 a4@2 a4 g4@2 g4@4", E: "d4@2 d4 d4@2 d4!3 d4@3 d4", F: "d4@2 d4!4 d4@2 d4 d4@2 d4",
  G: "eb4 eb4@3 eb4!2 c4@2 c4 c4@2 c4", H: "d4 d4@8 ~@3", I: "d4@2 d4 d4@2 d4 eb4@2 eb4 f4@2 f4", J: "a4 g4!2 a4",
  K: "a4@2 a4 a4@2 a4 a4@2 a4 a4@2 a4", L: "[g4@8 g4@16 ~@12 bb4@9 d5@5 eb5@14 eb5@23 ~@4 eb5@14 bb4@14 bb4@23 ~@2]/3",
  M: "[~@3 bb4@14 eb5@13 eb5@23 ~@5 eb5@14 bb4@18 bb4@5 bb4@5 a4@27 f4@116 ~@45]/6",
})).s("gm_trumpet").gain(0.25)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note("<~@4 A B C D ~@10 E F G H@3 I@6 ~@4>".pickRestart({
  A: "~@11 bb3", B: "bb3@2 bb3 c4@2 c4 d4@6", C: "eb4 f4 f4@2", D: "gb4@3 d4 d4@2", E: "~@5 bb3 bb3@2 bb3 c4@2 c4",
  F: "d4@2 eb4 f4", G: "f4 gb4", H: "[d4@8 d4@16 ~@12 f4@9 bb4@5 bb4@14 bb4@23 ~@4 bb4@14 g4@14 g4@23 ~@2]/3",
  I: "[~@3 g4@14 bb4@13 bb4@23 ~@5 bb4@14 f4@18 f4@5 f4@5 f4@27 d4@116 ~@45]/6",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "B♭ Trumpet" · soft notes
const trumpet_soft = note("<~@4 [~@6 bb3@2 bb3 bb3@2 ~] ~@13 [bb3@2 bb3 bb3@2 ~@7] ~@15>").s("gm_trumpet").gain(0.2)

// other · french horn · "Horn in F"
const french_horn = note("<~@3 A B C D E ~ F G F H ~ I J K L ~ M N O P@8 ~@4>".pickRestart({
  A: "~ f4", B: "c4 eb4 ~@2", C: "~@2 a4 bb4", D: "g4@6 f4@6 f4@6 bb3 c4 d4 eb4 f4 g4",
  E: "gb4@2 gb4 a4@2 gb4 a4@3 g4@3", F: "eb4", G: "d4 a4 g4 f4", H: "d4 eb4",
  I: "bb4@2 a4@2 g4@2 f4@6 g4@6 bb4 a4 g4 f4 d4 c4", J: "f4 g4", K: "bb4 a4", L: "f4@2 c4 ~", M: "a4 bb4 g4 f4",
  N: "f4@6 bb3 c4 d4 eb4 f4 g4 gb4@4 gb4@2 a4@4 gb4@2", O: "a4 g4 ~ f4",
  P: "[~@2 bb4@14 eb4@2 f4@2 g4@2 ~ a4@2 bb4@2 c5@2 ~ bb4@2 a4@2 g4@2 f4@2 ~ eb4@2 d4@2 eb4@14 c5@14 bb4@14 a4@14 g4@14 bb4@13 eb4@9 ~@2 g4@2 ~ bb4@55 ~ a4@27 ~@56 d5@60 ~@45, ~@136 f4@2 ~ a4@2 ~@82 bb4@116 ~@45]/8",
})).s("gm_french_horn").gain(0.48)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft = note("<~@4 A B ~@7 C ~@3 D E ~@15>".pickRestart({
  A: "~ d4", B: "eb4 f4 ~@2", C: "d4@11 ~", D: "~@3 eb4", E: "d4@2 eb4 f4",
})).s("gm_french_horn").gain(0.32)

// other · tuba · "Euphonium"
const tuba = note("<A B C D E F G H ~ I J I K L B@2 M K N O P Q R@2 S@6 ~@2 T@2>".pickRestart({
  A: "~ d4", B: "d4!2", C: "d4 eb4", D: "c4 d4", E: "c4@12 d4@6 bb3 c4 d4 eb4 f4 d4", F: "eb4 c4 bb3 d4",
  G: "bb3@3 c4@3 c4@3 a3 c4 a3", H: "a3 bb3", I: "bb3", J: "d4", K: "d4 c4", L: "d4@11 ~", M: "eb4 c4",
  N: "d4@6 bb3 c4 d4 eb4 f4 d4 eb4@6 c4@6", O: "bb3 d4 bb3 c4", P: "c4@3 a3 c4 a3 a3@6", Q: "bb3@2 ~ d4",
  R: "[~@2 eb4@14 eb4@23 ~@4 eb4@14 d4@14 d4@23 ~@2]/2",
  S: "[~@3 d4@14 eb4@13 eb4@23 ~@5 eb4@14 d4@23 bb3@2 ~ d4@2 f4@27 d4@116 ~@45, ~@97 c4@2 ~@189]/6",
  T: "[~@17 d4@30 ~]/2",
})).s("gm_tuba").gain(0.25)

// other · tuba · "Euphonium"
const tuba_2 = note("<A B@2 C D E F G ~ H I H J K B@2 J L M N O P Q@2 R@6 ~@2 S@2>".pickRestart({
  A: "~ bb3", B: "bb3!2", C: "a3@2 c4 bb3", D: "a3@12 bb3@6 bb2 c3 d3 eb3 f3 g3", E: "bb3 a3 g3 bb3",
  F: "g3@3 f3@3 a3@3 f3 a3 f3", G: "gb3 g3", H: "g3", I: "bb3", J: "bb3 a3", K: "bb3@11 ~", L: "c4 bb3 a3@2",
  M: "bb3@6 bb2 c3 d3 eb3 f3 g3 bb3@6 a3@6", N: "g3 bb3 g3 f3", O: "a3@3 f3 a3 f3 gb3@6", P: "g3@2 ~ bb3",
  Q: "[~@2 bb3@14 bb3@23 ~@4 bb3@14 a3@14 bb3@23 ~@2]/2",
  R: "[~@3 bb3@14 bb3@13 bb3@23 ~@5 bb3@14 bb3@23 f3@2 ~ a3@2 c4@27 bb3@116 ~@45, ~@97 g3@2 ~@189]/6",
  S: "[~@17 c4@30 ~]/2",
})).s("gm_tuba").gain(0.25)

// bass · tuba · "Euphonium"
const bass = note("<A B C D@2 E F G ~ H I H J K L@2 B M N O P Q R@2 S@6 ~@2 T@2>".pickRestart({
  A: "~ f3", B: "g3 f3", C: "g3!2", D: "[f3@12 f3@24 f3@6 bb2 c3 d3 eb3 f3 g3]/2", E: "eb3 f3 d3 g3",
  F: "g3@3 f3@3 f3@3 c3 f3 c3", G: "d3!2", H: "eb3", I: "g3", J: "f3!2", K: "f3@11 ~", L: "f3 g3", M: "f3",
  N: "f3@6 bb2 c3 d3 eb3 f3 g3 eb3@6 f3@6", O: "d3 g3!2 f3", P: "f3@3 c3 f3 c3 d3@6", Q: "d3@2 ~ f3",
  R: "[~@2 g3@14 g3@23 ~@4 g3@14 g3@14 g3@23 ~@2]/2",
  S: "[~@3 g3@14 g3@13 g3@23 ~@5 g3@14 f3@23 d3@2 ~ f3@2 a3@27 f3@116 ~@45, ~@97 eb3@2 ~@189]/6", T: "[~@17 f3@30 ~]/2",
})).s("gm_tuba").gain(0.25)

// bass · tuba
const bass_2 = note("<A B C D E F G H ~ I J K L M N O P Q R S T U V@2 W@6 ~@2 X@2>".pickRestart({
  A: "~@6 bb2@5 a2", B: "g2@5 a2 bb2@5 a2", C: "g2@5 f2 eb2@5 eb2", D: "f2@5 a2 bb2@4 d2 eb2",
  E: "~@3 f1@3 bb1@5 bb1, f2 ~", F: "eb2@3 f2@3 g2@5 f2", G: "eb2@3 f2@3 f2@3 c2 f2 c2", H: "d2 [g1,g2]",
  I: "eb2@11 f2", J: "g2@11 f2", K: "eb2", L: "bb2 f2", M: "bb1@11 ~", N: "bb2@5 a2 g2@5 a2", O: "bb2@5 a2 g2@5 f2",
  P: "eb2@5 eb2 f2@5 a2", Q: "bb2@4 d2 eb2 ~@3 f1@3, ~ f2", R: "bb1@5 bb1 eb2@3 f2@3", S: "g2@5 f2 eb2@3 f2@3",
  T: "f2@3 c2 f2 c2 d2@6", U: "[g1,g2]@2 ~ [bb1,bb2]", V: "[~@2 eb2@14 eb2@23 ~@4 eb2@9 ~ f2@4 g2@14 g2@23 ~@2]/2",
  W: "[~@3 g2@9 f2@5 eb2@13 eb2@23 ~@5 eb2@9 f2@5 bb2@28 f2@27 [bb1,bb2]@116 ~@45]/6", X: "[~@17 [bb1,bb2]@30 ~]/2",
})).s("gm_tuba").gain(0.4)

stack(trumpet, trumpet_2, trumpet_soft, french_horn, french_horn_soft, tuba, tuba_2, bass, bass_2)

More by Leonard Cohen