Strudelify

the rains of castamere

Ramin Djawadi

KeyG majorTempo100 bpm
0:00/0:00
// the rains of castamere — Ramin Djawadi
// 100 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6145955; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 52 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y B C Z E AA G AB Q R S T AC V AD H Y B C Z E AA AE AF E AA AE H
>`.pickRestart({
  A: "e5 f5 d5@5 f5", B: "f5 e5 a4@5 a4", C: "e5 f5 d5@4 f5@2", D: "f5 e5@6 a4", E: "e5 f5 d5@4 a5@2",
  F: "a5@2 g5@2 d5@3 g5", G: "f5@3 d5 e5@3 f5", H: "d5", I: "f4@3 a3 e4@3 a3", J: "f4@2 g4@2 e4@3 a3", K: "g4 f4 e4 d4",
  L: "e4", M: "a4 a4@2 a#4 g4@2 c4!2", N: "a4@2 a#4@2 g4@3 c4", O: "a#4 a4 g4 f4", P: "e4@7 a4", Q: "f5@3 a4 e5@3 a4",
  R: "f5@2 g5@2 e5@3 a4", S: "g5 f5 e5 d5", T: "e5@7 c5", U: "a5@3 a#5 g5@3 c5", V: "a5@2 a#5@2 g5@3 c5",
  W: "a#5 a5 g5 f5", X: "d5@7 a4", Y: "e5 f5 d5@4 d5 f5", Z: "e5@7 a4", AA: "a5@2 g5@2 d5@3 e5", AB: "d5@7 a5",
  AC: "a5@3 c5 g5@3 c5", AD: "a#5 a5 g5 e5", AE: "f5@3 d5 a5 g5 e5 f5", AF: "d5@3 a5",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet"
const clarinet_2 = note(`<
  A B C D E F G H I J K L M N O P Q R S T U@2 V W X Y Z R AA AB X@2 AC AD AE AF AG AH AI X@2 AJ X W AA AB X AK AL AM AN
  AO
>`.pickRestart({
  A: "d4 a4 d5 e5 f5@2 d5@2", B: "a3 e4 a4 b4 c5@2 b4@2", C: "d4 a4 d5 e5 f5 a4 d5 f5", D: "a3 e4 a4 b4 c5 b4 a4 e4",
  E: "a#3 f4 a#4 c5 d5 f4 a#4 d5", F: "g3 d4 g4 a4 a#4 d4 g4 a#4", G: "d4 a4 d5@2 a3 e4 c5@2", H: "d4 a4 d5 e5 f5@4",
  I: "a3@3 a3 c4@3 a3", J: "a3", K: "d4!2 a#3@2", L: "c4", M: "c4@4 c4@2 a3!2", N: "c4@6 ~ c4", O: "a#3", P: "c#4@7 a4",
  Q: "a4@3 f4 a4@3 a4", R: "a4@6 ~ a4", S: "g5 f5 e5 d5", T: "c5@7 c5", U: "c5@6 ~ c5", V: "a#4 a4", W: "a4@7 a4",
  X: "a4", Y: "a4@2 a4@5 a4", Z: "a4@3 d5", AA: "a#4", AB: "a4 g4 d4@2", AC: "f4@3 a3 e4@3 a3", AD: "f4@2 g4@2 e4@3 a3",
  AE: "g4 f4 e4 d4", AF: "e4@7 c4", AG: "a4@3 c4 g4@3 c4", AH: "a4@2 a#4@2 g4@3 c4", AI: "a#4 a4 g4 e4",
  AJ: "a4@2 e4@5 e4", AK: "a4@3 a4", AL: "e4 f4 d4@4 a4@2", AM: "a4@2 g4@2 d4@3 e4", AN: "f4@3 d4 a4 g4 e4 f4",
  AO: "d4",
})).s("gm_clarinet").gain(0.25)

// other · clarinet · "B♭ Clarinet"
const clarinet_3 = note(`<
  ~@8 A B C D E@2 F G ~@5 E H I J K L M N L O P Q@2 R S T@2 U V W X Y Z AA AB Q A ~@4
>`.pickRestart({
  A: "d4 a3", B: "a3 c4", C: "a3 d4", D: "g3 e4", E: "f3 e3", F: "g3 d4", G: "a3 e4", H: "g3 a3", I: "d3@2 f3 a3",
  J: "d3 a3", K: "a3 e3", L: "d3 f3", M: "f3@3 a3", N: "a#3@3 a3", O: "d3 ~ e3 ~", P: "d3", Q: "d4 ~ a3 ~", R: "d4 ~@3",
  S: "c4 ~ e4 c4", T: "f4 ~ e4 ~", U: "g3 ~ a3 ~", V: "d4 ~ d4 a3", W: "d4 e4 a4 d5 a4 e4 d4 a3",
  X: "e3 a3 b3 d4 e4 a4 d5 e5", Y: "a5 f5 d5 c5 a4 e4 a3 e3", Z: "e3 a3 b3 d4 e4 d4 c4 a3",
  AA: "f3 a3 d4 e4 f4 a4 e4 d4", AB: "c4 a3 g3 e3 d3 f3 g3 a3",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft = note("<~@48 [d4 a4] [d5 a4]!2 a4>").s("gm_clarinet").gain(0.2)

stack(clarinet, clarinet_2, clarinet_3, clarinet_soft)

More by Ramin Djawadi