Strudelify

dragon quest main theme

Koichi Sugiyama

KeyC majorTempo80 bpm
0:00/0:00
// dragon quest main theme — Kôichi Sugiyama
// 80 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 4, 4/4 at bar 5) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5877988; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 10 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/4)

// 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 · timpani · "Violins"
const timpani = note(`<
  [~@8 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6]
  [g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6]!6
  [g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6 a6 g6@4 ~@12]
  ~
  [~@8 d5 e5 f#5 g5 a5 b5 c6 d6@3 ~@14]
>`).s("gm_timpani").gain(0.25)

// other · string ensemble 1 · "Violins"
const string_ensemble_1 = note("<~@9 [~@8 b4 c5 d5 e5 f#5 g5 a5 b5@3 ~@14]>").s("gm_string_ensemble_1").gain(0.4)

// other · trumpet
const trumpet = note("<A B@2 C D E@3 F G>".pickRestart({
  A: "~@4 c5 ~ g5 ~", B: "[f5@2 ~@2 c6@16 ~@2 c5 ~ g5 ~ f5 ~ c6@2 ~@2]/2", C: "g5 ~ f5 ~ g5 ~ g#5 ~", D: "a#5",
  E: "[~@2 g#5 ~ g5 ~ f5 ~ g5@2 ~@2 c5@32 ~@4]/3", F: "g5@16 ~@4 g5!2 ~ g5 g5@2 ~@2 g5@2 ~@2", G: "g5 ~",
})).s("gm_trumpet").gain(0.3)

// other · trumpet
const trumpet_2 = note("<A@2 B@2 C D@2 E F G>".pickRestart({
  A: "[~@8 c4@32 ~@12 e4!2 ~ e4 d#4@4 ~@4]/2", B: "[~@4 e4!2 ~ e4 f4@4 ~@12 d#4@16 f4@24]/2",
  C: "~@12 g4!2 ~ g4 f#4@4 ~@8 g4!2 ~ g4", D: "[g#4@4 ~@12 e4@24 ~@4 f4!2 ~ f4 e4@4 ~@8 d#4!2 ~ d#4]/2", E: "e4@3 ~",
  F: "g4@16 ~@4 g4!2 ~ g4 g4@2 ~@2 g4@2 ~@2", G: "g4 ~",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Trombone"
const french_horn = note("<A B@2 C D E@3 F G>".pickRestart({
  A: "~@4 c3 ~ g3 ~", B: "[f3@2 ~@2 c4@16 ~@2 c3 ~ g3 ~ f3 ~ c4@2 ~@2]/2", C: "g3 ~ f3 ~ g3 ~ g#3 ~", D: "a#3",
  E: "[~@2 g#3 ~ g3 ~ f3 ~@5 c3@32 ~@4, ~@2 g3@9 ~]/3", F: "[a#3,d#4] [a3,f4]", G: "[b3,g4] ~",
})).s("gm_french_horn").gain(0.3)

// bass · tuba · "Trombone"
const bass = note("<A@2 B@2 C D@2 E F G>".pickRestart({
  A: "[~@8 c3@32 ~@12 c3!2 ~ c3 c3@4 ~@4]/2", B: "[~@4 c3!2 ~ c3 c3@4 ~@12 [g#2,d#3]@16 [c#2,f3]@24]/2",
  C: "~@12 [d#2,d#3]!2 ~ [d#2,d#3] [d#2,d#3]@4 ~@8 [d#2,d#3]!2 ~ [d#2,d#3]", // D#
  D: "[[d#2,d#3]@4 ~@12 c3@28 c3!2 ~ c3 c3@4 ~@8 c3!2 ~ c3]/2", E: "c3@3 ~", F: "[d#2,a#3] [d2,c4]", G: "[g2,d4] ~",
})).s("gm_tuba").gain(0.45)

// other · french horn · "Horn in F"
const french_horn_2 = note("<A@2 B@2 C D@2 E F G>".pickRestart({
  A: "[~@8 f4@32 ~@12 g3!2 ~ g3 g3@4 ~@4]/2", B: "[~@4 g3!2 ~ g3 g3@4 ~@12 g3@16 g#3@24]/2",
  C: "~@12 a#3!2 ~ a#3 a#3@4 ~@8 a#3!2 ~ a#3", D: "[a#3@4 ~@12 c4@24 ~@4 c4!2 ~ c4 c4@4 ~@8 c4!2 ~ c4]/2", E: "c4@3 ~",
  F: "d#4 d4", G: "g4 ~",
})).s("gm_french_horn").gain(0.4)

// drums · snare
const snare = s("sd").struct("<~ A B ~ C D C D ~@2>".pickRestart({
  A: "~@20 x!2 ~ x!2 ~@7", B: "~@4 x!2 ~ x!2 ~@23", C: "~@12 x!2 ~ x!2 ~@11 x!2 ~ x", D: "x",
})).gain(0.25)

// drums · crash
const crash = s("cr").struct("<[~ x ~@2] ~@9>").gain(0.4)

stack(timpani, string_ensemble_1, trumpet, trumpet_2, french_horn, bass, french_horn_2, snare, crash)

More by Koichi Sugiyama