Strudelify

CHEVALIERS DE SANGREAL

Hans Zimmer

KeyF majorTempo70 bpm
0:00/0:00
// CHEVALIERS DE SANGREAL — Hans Zimmer
// 70 bpm, 12/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5954778; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 53 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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.

// chords · piano · "Klavier"
const piano = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L@2 I@2 B@2 K@2 L@2 I@2 B@2 M@2 D@2 A@2 B@2 K@2 L@2 N@2 O P Q
>`.pickRestart({
  A: "[~@11 d3 ~@11 d3 ~@11 d3 ~@11 d3, d1, a3@3 d3@2 d3 d2@2 f3@4 ~ d3 d2@2 [d2,a3]@2 a3@6 a3@3 d3@2 d3 d2@2 f3@4 ~ d3 d2@2 [d2,a3]@2 a3@6, d2@2 f3@5 d3 d2 d3 [d2,bb3]@2 d2@2 f3@5 d3 d2 d3 [d2,d4]@2 d2@2 f3@5 d3 d2 d3 [d2,bb3]@2 d2@2 f3@5 d3 d2 d3 [d2,d4]@2, ~ d3 d2@2 [d2,a3]@2 a3@6 a3@3 d3@2 d3 d2@2 f3@4 ~ d3 d2@2 [d2,a3]@2 a3@6 a3@3 d3@2 d3 d2@2 f3@4]/2", // D5 Gm D Gm D D5
  B: "[~@11 c3 ~@11 c3 ~@11 c3 ~@11 c3, f1, a3@3 c3@2 c3 f2@2 f3@4 ~ c3 f2@2 [f2,a3]@2 a3@3 c3@2 ~@2 c3 f2@2 [f2,a3]@2 a3@6 a3@3 c3@2 c3 f2@2 f3@4, f2@2 f3@5 c3 f2 c3 [f2,c4]@2 f2@2 f3@5 c3 f2@2 [f2,a3]@2 f2@2 f3@5 c3 f2 c3 [f2,c4]@2 f2@2 f3@5 c3 f2@2 [f2,a3]@2, ~ c3 f2@2 [f2,a3]@2 a3@6 a3@3 c3@2 c3 f2@2 f3@4 a3@3 c3@2 c3 f2@2 f3@4 ~ c3 f2@2 [f2,a3]@2 a3@3 c3@2 ~]/2", // F F5 F F5 F
  C: "[~@11 c3 ~@11 c3 g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 c4 c3 g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 g3 c3, c1@23 ~, g3@3 c3@2 c3 c2@2 f3@4 ~ c3 c2@2 [c2,g3]@2 g3@3 c3@2 ~@25, c2@2 f3@5 c3 c2 c3 [c2,c4]@2 c2@2 f3@5 c3 c2@2 [c2,g3]@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2, ~ c3 c2@2 [c2,g3]@2 g3@6 g3@3 c3@2 c3 c2@2 f3@4 ~@24]/2", // C5 C C5
  D: "[~@11 c3 ~@11 c3 ~@11 c3 ~@11 c3, a1, a3@3 c3@2 c3 a2@2 e3@4 ~ c3 a2@2 [a2,a3]@2 a3@3 c3@2 ~@2 c3 a2@2 [a2,a3]@2 a3@6 a3@3 c3@2 c3 a2@2 e3@4, a2@2 e3@5 c3 a2 c3 [a2,c4]@2 a2@2 e3@5 c3 a2@2 [a2,a3]@2 a2@2 e3@5 c3 a2 c3 [a2,c4]@2 a2@2 e3@5 c3 a2@2 [a2,a3]@2, ~ c3 a2@2 [a2,a3]@2 a3@6 a3@3 c3@2 c3 a2@2 e3@4 a3@3 c3@2 c3 a2@2 e3@4 ~ c3 a2@2 [a2,a3]@2 a3@3 c3@2 ~]/2", // A Am A Am A
  E: "[~@11 d3 ~@11 d3 [d3,a3] d3 f3 d3 a3 d3 a3 d3 f3 d3 bb3 d3 a3 d3 f3 d3 a3 d3 [e3,a3] d3 f3 d3 d4 d3, d1@23 ~, a3@3 d3@2 d3 d2@2 f3@4 ~ d3 d2@2 [d2,a3]@2 [a2,a3]@6 ~@24, [d2,f3]@2 f3@5 d3 d2 d3 [d2,bb3]@2 d2@2 f3@5 d3 d2 d3 [d2,d4]@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2, ~ d3 d2@2 [d2,a3]@2 a3@6 a3@3 d3@2 d3 d2@2 f3@4 ~@24]/2", // D5 A5 D5 A Dm Gm D D5
  F: "[[f3,a3] c3 f3 c3 a3 c3 a3 c3 f3 c3 c4 c3 a3 c3 f3 c3 a3 c3 [a2,a3] c3 f3 c3 a3 c3 [c3,a3] c3 f3 c3 a3 c3 a3 c3 f3 c3 c4 c3 a3 c3 f3 c3 a3 c3 [f3,a3] c3 f3 c3 a3 c3, f1@23 ~, f2!12 f2!12]/2", // F A F
  G: "[g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 c4 c3 g3 c3 f3 c3 g3 c3 [c3,g3] c3 f3 c3 g3 c3 [e3,g3] c3 f3 c3 g3 c3 g3 c3 f3 c3 c4 c3 g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 g3 c3, c1@23 ~, c2!12 c2!12]/2", // C5 Em
  H: "[a3 c3 e3 c3 a3 c3 a3 c3 e3 c3 c4 c3 a3 c3 e3 c3 a3 c3 [c3,a3] c3 e3 c3 a3 c3 [e3,a3] c3 e3 c3 a3 c3 a3 c3 e3 c3 c4 c3 a3 c3 e3 c3 a3 c3 a3 c3 e3 c3 a3 c3, a1@23 ~, a2!12 a2!12]/2", // F A5
  I: "[a3 d3 f3 d3 a3 d3 a3 d3 f3 d3 bb3 d3 a3 d3 f3 d3 a3 d3 a3 d3 f3 d3 d4 d3 a3 d3 f3 d3 a3 d3 a3 d3 f3 d3 bb3 d3 a3 d3 f3 d3 a3 d3 a3 d3 f3 d3 d4 d3, d1@23 ~, d2!12 d2!12]/2",
  J: "[a3 c3 f3 c3 a3 c3 a3 c3 f3 c3 c4 c3 a3 c3 f3 c3 a3 c3 a3 c3 f3 c3 a3 c3 a3 c3 f3 c3 a3 c3 a3 c3 f3 c3 c4 c3 a3 c3 f3 c3 a3 c3 a3 c3 f3 c3 a3 c3, f1@23 ~, f2!12 f2!12]/2",
  K: "[g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 c4 c3 g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 c4 c3 g3 c3 f3 c3 g3 c3 g3 c3 f3 c3 g3 c3, c1@23 ~, c2!12 c2!12]/2",
  L: "[a3 c3 e3 c3 a3 c3 a3 c3 e3 c3 c4 c3 a3 c3 e3 c3 a3 c3 a3 c3 e3 c3 a3 c3 a3 c3 e3 c3 a3 c3 a3 c3 e3 c3 c4 c3 a3 c3 e3 c3 a3 c3 a3 c3 e3 c3 a3 c3, a1@23 ~, a2!12 a2!12]/2",
  M: "[~@11 c3 ~@11 c3 ~@11 c3 ~@11 c3, c1, g3@3 c3@2 c3 c2@2 f3@4 ~ c3 c2@2 [c2,g3]@2 g3@3 c3@2 ~@2 c3 c2@2 [c2,g3]@2 g3@6 g3@3 c3@2 c3 c2@2 f3@4, c2@2 f3@5 c3 c2 c3 [c2,c4]@2 c2@2 f3@5 c3 c2@2 [c2,g3]@2 c2@2 f3@5 c3 c2 c3 [c2,c4]@2 c2@2 f3@5 c3 c2@2 [c2,g3]@2, ~ c3 c2@2 [c2,g3]@2 g3@6 g3@3 c3@2 c3 c2@2 f3@4 g3@3 c3@2 c3 c2@2 f3@4 ~ c3 c2@2 [c2,g3]@2 g3@3 c3@2 ~]/2", // C5 C C5 C C5
  N: "a3 d3 f3 d3 a3 d3 a3 d3 f3 d3 bb3 d3 a3 d3 f3 d3 a3 d3 a3 d3 f3 d3 d4 d3, a1@23 ~, a2!12",
  O: "~@11 c3 ~@11 c3, f1, a3@3 c3@2 c3 f2@2 f3@4 ~ c3 f2@2 [f2,a3]@2 a3@3 c3@2 ~, f2@2 f3@5 c3 f2 c3 [f2,c4]@2 f2@2 f3@5 c3 f2@2 [f2,a3]@2, ~ c3 f2@2 [f2,a3]@2 a3@6 a3@3 c3@2 c3 f2@2 f3@4", // F F5 F
  P: "c4@2 c4 bb3!2 a3!2 f3, [f2,a2,c3]@23 ~, f3@7 ~", Q: "[g2,bb2,d3,g3,g4] ~@5",
})).s("gm_piano").gain(0.25)

// other · violin · "Violine"
const violin = note(`<
  ~@7 A B C B D E F G H I J I K L M N O P Q P R S T U V W X Y Z AA AB AC AD AE@2 AF@2 AA AB AC AG AH AI Z AJ AK
>`.pickRestart({
  A: "~@3 a3", B: "f4@3 a3", C: "d4@3 e4", D: "c4@3 f4", E: "g4@3 c4", F: "e4@3 g4", G: "a4@3 c4", H: "e4@3 a4",
  I: "f5@3 a4", J: "d5@3 e5", K: "c5@3 f5", L: "g5@3 c5", M: "e5@3 g5", N: "a5@3 e5", O: "e5@3 a5", P: "f6@3 a5",
  Q: "d6@3 e6", R: "c6@3 f6", S: "g6@3 c6", T: "e6@3 g6", U: "a6@3 c6", V: "e6@3 a5", W: "bb5@2 d6 c6!2 bb5!2 g5",
  X: "a5", Y: "bb5@2 f6 eb6!2 d6!2 c6", Z: "c6 f6 a5@4 f5 a5", AA: "c6@2 c6 bb5!2 a5!2 f5", AB: "f5 c5 c5@4 c6@2",
  AC: "d6@2 a6 g6!2 f6!2 e6", AD: "bb6", AE: "[g6@2 bb5@2 c6@2 d6@4 f6 eb6!2 d6 g6 c6]/2",
  AF: "[a5 f6 bb5@2 g5@2 d5 g5@3 c6 bb5!2 a5!2 g5]/2", AG: "d6@3 f6", AH: "g6 f6 eb6 d6", AI: "d6@2 f6 eb6!2 d6!2 c6",
  AJ: "c6@6 f5 a5", AK: "g5 ~@5",
})).s("gm_violin").gain(0.3)

// other · cello · "Violoncello"
const cello = note("<~@18 A B C D E F G H A I C J E K L M N O P Q R@2 S T@2 U@2 V M ~@3 W X Y>".pickRestart({
  A: "f3@2 a3 g3!2 f3!2 a2", B: "f3", C: "g3@2 g3 f3!2 e3!2 c3", D: "g3", E: "a3@2 c4 b3!2 a3!2 c3", F: "e3",
  G: "f3@2 f3 e3!2 d3!2 a2", H: "d3", I: "c3@3 f3", J: "e3@2 e3 g3", K: "e3@3 a3", L: "bb3", M: "a3", N: "f3@2 f3 d3",
  O: "f3@3 a3", P: "c4@3 f3", Q: "a3@3 c4", R: "[a3@6 e3@4 d4 c4!2 bb3!2 g3]/2", S: "g3 bb2 c3 d3",
  T: "[bb3@10 bb3@2 g3@2 d3 g3]/2", U: "c4", V: "f3 c3 c3@4 c4@2", W: "f3@6 f3 a3", X: "c4@6 f3 a3", Y: "g3 ~@5",
})).s("gm_cello").gain(0.4)

// other · cello · "Violoncello" · soft notes
const cello_soft = note("<A B A C D@2 E@2 F@4 G@2 F H I F ~@35>".pickRestart({
  A: "f3", B: "d3", C: "c3", D: "g3/2", E: "[a3@7 c4]/2", F: "a3", G: "g3", H: "a3@3 a3", I: "a2",
})).s("gm_cello").gain(0.2)

// drums · snare
const snare = s("sd").struct(`<
  x
  ~@7
  [x ~@3 x!3 ~@3 x ~ x ~@3 x!3 ~@3 x ~]!29
  [x!2 ~@2 x!2 ~@2 x!2 ~@2]!14
  [x ~@5 x ~@2 x ~@2 x ~@2 x ~@5 x!3]
  x
>`).gain(0.15)

// drums · crash
const crash = s("cr").struct("<~@52 x>").gain(0.2)

stack(piano, violin, cello, cello_soft, snare, crash)

More by Hans Zimmer