Strudelify

the bells of notre dame

Alan Menken

KeyG majorTempo100 bpm
0:00/0:00
// the bells of notre dame — Alan Menken
// 100 bpm, 6/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 6/8 at bar 12) are rendered on a constant 6/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5919995; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/3)

// 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 · violin · "Violín II"
const violin = note(`<
  ~@5 A B C D E F G H@11 I J K L M@2 N O P Q R@2 S T U V S T U W X Y Z AA AB AC N O AD AE AF H@3 X AG J AH AI@2 AJ AK X
  O AL AM X AG N O
>`.pickRestart({
  A: "g3@2 ~", B: "b3 e4 d4", C: "~ a3 d4", D: "c4 ~ b3", E: "e4 d4 f#4", F: "e4 e4@2", G: "~@8 g4 ~ g4 ~",
  H: "~@2 g4 ~ g4 ~@3 g4 ~ g4 ~", I: "a3!2", J: "d4 b3", K: "e4 a4", L: "f#4!2", M: "g4 a4", N: "g4 e4", O: "e4",
  P: "b4 g4", Q: "d4 a3", R: "b3/2", S: "g3@2 ~ a3@2 ~", T: "b3@2 ~ c4@2 ~", U: "g3@2 ~ b3@2 ~", V: "e4@2 ~ e4@2 ~",
  W: "b3@2 ~ d4@2 ~", X: "e4 f#4", Y: "~ g4 f#4 e4 d4 b3", Z: "c4 f#4", AA: "e4 d#4", AB: "b3 f#4", AC: "d4 d#4",
  AD: "e4 g4", AE: "f#4 d4", AF: "e4@2 g4 ~ g4 ~@3 g4 ~ g4 ~", AG: "g4!2", AH: "e4!2", AI: "b4/2", AJ: "d4!2",
  AK: "b3!2", AL: "a4 f#4", AM: "b4",
})).s("gm_violin").gain(0.25)

// other · cello · "Violonchelo I"
const cello = note(`<
  A@3 B@4 C@4 ~@20 D E F@2 G H I J G H K L M N O P M Q R ~ D E ~@3 S T U V W T U X Y Z AA Z AB T U V AC
>`.pickRestart({
  A: "[~@9 e2@31 e2@32]/3", B: "[e2 e2 e2]/4", C: "[e2@2 e2@2 e2 e3]/4", D: "e2 c3", E: "d3 b2", F: "e2/2",
  G: "e3@2 ~ f#3@2 ~", H: "g3@2 ~ d#3@2 ~", I: "d3@2 ~ b2@2 ~", J: "~@3 e2@2 ~", K: "d3@2 ~ g3@2 ~",
  L: "g3@2 ~ f#3@2 ~", M: "e3 f#3", N: "g3 e3", O: "a3 f#3", P: "b3 b2", Q: "g3 d#3", R: "e3 ~", S: "~ d#3",
  T: "e4@3 b3 a3@2 d4@2 c4@2 a3@2", U: "b3@3 a3 b3@2 c4@2 b3@2 a3@2", V: "b3@2 g3 g3@2 f#3", W: "e3@3 ~@2 b3",
  X: "b3@2 d3 b3@2 a3", Y: "b3@3 ~ a3 b3", Z: "c4@3 b3 c4@2 d4@2 c4@2 a3@2", AA: "b3 e3@3 a3 b3", AB: "b3@3 ~@2 b3",
  AC: "e3",
})).s("gm_cello").gain(0.35)

// other · cello · "Violonchelo I" · soft notes
const cello_soft = note("<~@11 A B C B D E F G D H I J D K L M D E N ~@23 A B C O ~@16>".pickRestart({
  A: "~ b2", B: "c#3 d#3", C: "e3 b2", D: "e2 f#2", E: "g2 d#3", F: "d3 b2", G: "e2 b2", H: "g2 d#2", I: "d2 d3",
  J: "g2 f#2", K: "g2 e2", L: "a2 f#2", M: "b2!2", N: "e2 ~", O: "c#3 ~",
})).s("gm_cello").gain(0.2)

// other · cello · "Violonchelo II"
const cello_2 = note(`<
  A@3 B@4 C@4 ~@20 D E F@2 G H I J G H I K L M N O L P Q ~ D E ~@4 R S T U R S V W X Y X Z R S T AA
>`.pickRestart({
  A: "[~@9 e2@31 e2@32]/3", B: "[e2 e2 e2]/4", C: "[e2@2 e2@2 e2 e3]/4", D: "e2 c3", E: "d3 b2", F: "e2/2",
  G: "g2@2 ~ a2@2 ~", H: "b2@2 ~ c3@2 ~", I: "g2@2 ~ b2@2 ~", J: "e3@2 ~ e3@2 ~", K: "b2@2 ~ d3@2 ~", L: "e3 f#3",
  M: "g3 e3", N: "a3 f#3", O: "b3 b2", P: "g3 d#3", Q: "e3 ~", R: "e4@3 b3 a3@2 d4@2 c4@2 a3@2",
  S: "b3@3 a3 b3@2 c4@2 b3@2 a3@2", T: "b3@2 g3 g3@2 f#3", U: "e3@3 ~@2 b3", V: "b3@2 d3 b3@2 a3", W: "b3@3 ~ a3 b3",
  X: "c4@3 b3 c4@2 d4@2 c4@2 a3@2", Y: "b3 e3@3 a3 b3", Z: "b3@3 ~@2 b3", AA: "e3",
})).s("gm_cello").gain(0.35)

// other · cello · "Violonchelo II" · soft notes
const cello_soft_2 = note("<~@11 A B@11 C D E F G@2 H ~@43>".pickRestart({
  A: "~@8 g2 ~ g2 ~", B: "~@2 g2 ~ g2 ~@3 g2 ~ g2 ~", C: "a2!2", D: "d3 b2", E: "e3 a3", F: "f#3!2", G: "g3 a3",
  H: "g3 e3",
})).s("gm_cello").gain(0.2)

stack(violin, cello, cello_soft, cello_2, cello_soft_2)

More by Alan Menken