Strudelify

Dragonstone

Ramin Djawadi

KeyE♭ majorTempo128 bpm
0:00/0:00
// Dragonstone — Ramin Djawadi
// 127.5 bpm, 12/8, key Eb 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 60, 12/8 at bar 60) are rendered on a constant 12/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5812380; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 93 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(127.5/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 · string ensemble 1 · "Violin I"
const string_ensemble_1 = note(`<
  A@7 B@3 C@4 D@6 E@6 F@3 G@2 H@5 I@7 J@8 K L M N O P Q R S T U V W T X Y@2 Z AA AB AC AD@2 AE@2 AF@4 AG@3 AH@2 AI AJ@3
  AK@4
>`.pickRestart({
  A: "[~@21 c3@24 c3@12 c3@12 c3@12 c2@4 c2@2 c2@2 c2@4 c2@4 ~@16 c3@4 c3@4 c3@16 c2@4 c3@4 c3@16 ~@4 c3@3, ~@31 c6@4 c4@20 ~, ~@97 c2@16 ~@55]/7",
  B: "[~@9 d4@12 c3@4 c3@16 ~@4 c3@4 c3@16 ~@4 c3@3, ~ c3@16 ~@4 eb4@48 ~@3]/3",
  C: "[~@9 c4@12 c3@4 c3@16 ~@4 c3@4 c3@8 c3@4 c3@2 c3@2 c3@2 c3@2 c3@4 c3@16 ~@4 [c3,d4]@3, ~ c3@16 ~@4 [c4,eb4]@36 gb4@12 g4@24 ~@3]/4", // Csus2 Cm
  D: "[~@3 c5@4 ab2@4 bb2@4 ~@4 d5@4 g2@4 eb2@4 ~@4 [c2,eb2,c3]@4 ab2@4 g2@4 f2, ~ c3@16 ~@4 [c5,eb5]@36 ~@12 [c5,eb5]@48 eb5@27, ~@15 f2@8 ~@25]/6", // Cm
  E: "[~@3 b4@4 eb2@4 f2@4 d2@8 c5@8 b4@12 [eb3,c5]@5, ~@7 c5@16 c2@20 ~@5]/6", // Cm
  F: "[~@2 c5 f5 ~ eb5@31 g5 f5@33 f5 ab5]/3", G: "[~ g5@31 b5@16]/2",
  H: "[~ ab5@17 c6@17 eb4@17 eb4@17 d4@17 d4@34]/5",
  I: "[~@17 g4@16 c3 f3 eb3@33 [g2,c6]@17 c3 f3 ~ [ab2,c3]@14 g2@17 ~@11 f6@6 c6@17 d6@15, d3@33 ~ eb4@34 ~@17 d6@17 eb6@28 ~@38, ~@119 bb2@17 g2@32]/7", // C5 Ab
  J: "[~ [eb2,ab2,eb6]@17 [c2,c4]@2 g3@2 ab3 bb3 c4@2 ~@4 c2@2 c2@10 [c2,c4]@2 g3@2 ab3 bb3 ~@6 c2@2 c2@10 [c2,c4]@2 g3@2 ab3 bb3 c4@2 ~@4 c2@2 c2@10 [eb3,c5]@2 eb3!4, ~@10 c2@5 ~@7 c2@5 ~@7 c2@5 ~@9, ~@13 g3@6 ~@5 c4@7 ~@6 g3@6 ~@3 d5@2]/8", // Ab5 C Cm
  K: "[eb3,d5]@2 eb3!4 [c3,d5]@2 c3!4, ~ eb5@2 ~ eb5@2", L: "[d3,eb5]@2 d3!4 [eb3,eb4,eb5]@2 eb3!4, ~ f5@2 ~ f5@2",
  M: "[eb3,eb4,eb5]@2 eb3!4 [eb3,eb5]@2 eb3!4, ~ f5@2 ~ f5@2", N: "[eb3,f5]@2 eb3!4 g2!6, ~ g5@2 g5 c5@2",
  O: "g2!6 ab2!6, g5 c5@2 g5 c5@2", P: "bb2!10 [bb2,g5] [bb2,bb5], c5 d5@2 bb4 eb5 ~",
  Q: "c3!10 [c3,ab4] [c3,c5], c6@3 c5 eb5 ~", R: "d3!6 g2!6, d5 g4", S: "c3!6 c2!6, c5!2", T: "[c3,eb3,ab4,c5,eb5]",
  U: "f2!6 ab2!5 g2, eb5 d5", V: "[c3,eb3,g4,c5,eb5]", W: "ab2!6 f2!6, eb5 c5", X: "f2!6 ab2!4 g2 f2, [ab4,c5,eb5] b4",
  Y: "[c3!6 d3!6 c3!6 bb2!4 ab2!2, c5]/2", Z: "c3 ~@2 c6@3, ~ c3@5", AA: "c3 ~@2 eb5@3, b5 ~, ~ c3@5", AB: "c3 c3@5",
  AC: "c3 ~@2 b4@3, c5 ~, ~ c3@5", AD: "[b2@6 b2 b2@5, g5]/2", AE: "[ab2,c5]/2", AF: "[ab5 bb5@3]/2",
  AG: "[ab5 g5@4 ab5]/3", AH: "g5/2", AI: "f5", AJ: "[g5 f5@5]/3", AK: "[eb5@11 e5@13]/4",
})).s("gm_string_ensemble_1").gain(0.4)

// other · string ensemble 1 · "Violin II"
const string_ensemble_1_2 = note(`<
  A@3 B@4 C@3 D@4 E@6 F@6 G@5 H@5 I@7 J@8 K@2 L M N O P Q R S T U V S W X@2 Y Z ~ AA X@2 AB@2 ~@17
>`.pickRestart({
  A: "[~@21 g3@12 ab3@8 bb3 [ab3,bb3]!5 ab3@8 g3@8 ~@9]/3", B: "[~@7 c6@4 c4@20 ~]/4", C: "[~@3 d4@4 eb4@16 ~]/3",
  D: "[~@3 c4@4 g3@12 b3@4 c4@8 d4]/4", E: "[~@3 eb4@4 [eb4,ab4]@12 [d4,ab4]@4 [eb4,g4]@16 eb4@9]/6",
  F: "[~@3 b3@4 c4@16 c4@8 b4@12 ~@5]/6", G: "[~ g4@17 f4@17 g4@14 g4@3 b4@8]/5",
  H: "[~ g4@17 c5@17 c4@17 c4@17 bb3@17 b3@34]/5", I: "[d4@34 c4@34 c5@17 d5@17 eb5@28 f5@6 c5@17 d5@15]/7",
  J: "[~ eb5@17 c4@2 c4@10 c4@2 c4@10 c4@2 c4@10 c4@2 c4@10 c4@2 c4@10 c4@2 c4@10 c4@2 g4@2 ab4 bb4]/8",
  K: "[c5@18 c5@2 g4@2 c5 d5]/2", L: "c5@3 ab4 ab4@2", M: "bb4@2 bb4@4 g4@2 g3@2 eb4 f4", N: "g4@3 g4 c4@2",
  O: "c4 d4@2 c4 d4@2", P: "c4 eb4@2 c5 eb5@2", Q: "d5 c5@2 d4@3", R: "[eb4,g4] c5", S: "[ab3,eb4]", T: "[ab4,c5] d4",
  U: "[g3,eb4]", V: "[g4,c5] f4", W: "[ab3,eb4] b3", X: "g4/2", Y: "~ c6", Z: "b5 eb5", AA: "c5 b4", AB: "c4/2",
})).s("gm_string_ensemble_1").gain(0.4)

// other · string ensemble 1 · "Violin II" · soft notes
const string_ensemble_1_soft = note("<~@77 A ~ B C@5 D@8>".pickRestart({
  A: "f4 bb4 ab4@22", B: "~@12 f4 ab4 g4@10", C: "[c5 bb4@9]/5", D: "[bb4@35 c5@13]/8",
})).s("gm_string_ensemble_1").gain(0.2)

// other · string ensemble 1 · "Violoncello"
const string_ensemble_1_3 = note(`<
  A@3 B@8 C D@8 E@7 ~@9 F@7 G@2 H@2 I@2 J@2 K L M N O P Q R S T U T V T W X Y Z ~ AA@2 AB@2 AC@2 ~@17
>`.pickRestart({
  A: "[~@21 c3@24 c3@16 c3@2 c3@2 c4@4 c3@3]/3",
  B: "[~@9 c4@12 c4@16 c4@2 c4@2 c3@4 c4@16 c4@2 c4@2 ~@4 c4@16 c4@2 c4@2 c4@2 c4@2 c4@16 c4@2 c4@2 c4@2 c4@2 c4@16 c4@2 c4@2 c4@2 c4@2 c4@16 c4@2 c4@2 c4@2 c4@2 c4@16 c4@2 c4@2 c4@2 c4@2 c4@3]/8",
  C: "~@13 c4@2 c4@2 c4@2 c4@2 c4@3",
  D: "[~@9 b3@12 c4@16 c4@2 c4@2 c4@2 c4@2 c4@16 c4@2 c4@2 c4@2 c4@2 ~@24 f3@24 [eb3,g3]@24 [f2,f3]@24 eb3@27, ~@23 [ab2,eb3,ab3]@16 ~@25]/8", // Eb F Ab5
  E: "[~@9 b2@12 c3@48 c3@60 eb4@17 ~@22]/7",
  F: "[d4@33 c4 f4 eb4@33 c3@17 c3 f3 ~ eb3@14 bb2@17 d3@17 bb2@2 d3@2 c3@28]/7",
  G: "[~@2 bb2@3 d3@3 [ab2,c3]@28 c3@4 g2@4 ab2@2 bb2@2]/2", H: "[c3@2 g2@12 ~@4 c3@2 g2@2 ab2 bb2]/2",
  I: "[c3@14 ~@4 c3@2 g2@2 ab2 bb2]/2", J: "[c3 g2@6 ~@2 [eb3,g3,eb4]@3]/2", K: "[eb3,ab3,eb4]!2",
  L: "[d3,bb3,d4] [eb3,g3,bb3,eb4]", M: "[eb3,ab3,c4,eb4] [eb3,c4]", N: "[f3,d4] [g2,d3,g3]",
  O: "[g2,eb3,g3] [ab3,eb4]", P: "[bb3,f4] [bb2,eb3,bb3]", Q: "[c3,eb3,c4] [c3,f3,c4]", R: "[d3,f3,d4]@3 f3 ~@2",
  S: "d3 eb3@2 [c3,eb3,g3,c4]@3", T: "c3!6 bb2!6", U: "f3!6 ab3!5 g3", V: "ab3!6 f3!6", W: "f3!6 ab3!4 g3 f3",
  X: "c4!6 d4!6", Y: "c4!6 bb3!4 ab3!2", Z: "c4@2 g3@2 ab3 bb3 c4@2 g3@4", AA: "[c4@2 g3@2 ab3 bb3 c4@18]/2",
  AB: "b3/2", AC: "c4/2",
})).s("gm_string_ensemble_1").gain(0.4)

stack(string_ensemble_1, string_ensemble_1_2, string_ensemble_1_soft, string_ensemble_1_3)

More by Ramin Djawadi