Strudelify

World Of Warcraft OST

Arangement by Dustin Bruce

KeyG majorTempo70 bpm
0:00/0:00
// World Of Warcraft OST — Arangement by Dustin Bruce
// 70 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Flute" named as a pipe, played on flute (its tremolo strings patch is not one); ch 3 "Piccolo" named as a pipe, played on piccolo (its pizzicato strings patch is not one); ch 4 "B♭ Clarinet" named as a reed, played on clarinet (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/3439916; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 48 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(70/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.

// chords · flute
const flute = note(`<
  ~@4 A B C B D E F G H@3 I ~@2 J K J I L M N O A B C B P Q R S T@3 U ~@2 V W J X Y Z AA AB
>`.pickRestart({
  A: "e5@3 f#5 g5@2 f#5@2", B: "a5@3 f#5 e5@4", C: "g5@3 g5 f#5@4", D: "b5@3 b5 a5@2 b5@2", E: "c6@2 c6 g5 f#5@4",
  F: "b5!2 a5@2 c#6!2 b5@2", G: "c#6 b5 c#6 d6 f#6@4", H: "[e6@8 c#6@15 ~ b5@15 ~ g5@8]/3", I: "f#5@15 ~",
  J: "g5@3 g5 a5@2 g5@2", K: "f#5@2 e5@2 d5@11 ~", L: "c6@3 c6 d6@2 c6@2", M: "b5 a5 g5@4 b5@2", N: "e6 d6",
  O: "e6@11 ~@5", P: "[b4,d5]@3 [b4,d5] [a4,f#5]@2 [b4,d5]@2", Q: "[c5,e5]@2 [g4,e5]!2 [f#4,d#5]@4",
  R: "[b4,e5]!2 [a4,d5] ~ [c#5,f#5]!2 [b4,e5] ~", S: "c#5 b4 c#5 d5 f#5@4", T: "[e5@8 c#5@15 ~ a4@15 ~ g4@8]/3",
  U: "f#4@4 d#4@11 ~", V: "[g4,e5,g5]@3 [g4,e5,g5] [a4,f#5,a5]@2 [g4,e5,g5]@2",
  W: "[f#4,d5,f#5] [e4,b4,e5] [d4,a4,d5]@4 ~@2", X: "[f#4,f#5,f#6]@15 ~",
  Y: "[c5,e5,c6]@3 [c5,e5,c6] [d5,f#5,d6]@2 [c5,e5,c6]@2", Z: "[b4,d5,b5] [a4,c5,a5] [g4,b4,g5]@4 [b4,d5,b5]@2",
  AA: "[e5,g5,e6]@4 [d5,f#5,d6]@3 ~", AB: "[e5,g5,e6]@15 ~",
})).s("gm_flute").gain(0.4)

// other · piccolo
const piccolo = note(`<
  ~@4 A B C B D E F G H@3 I ~@2 J K L I M N O P A B C B Q R S G T@2 ~@2 U V W X Y Z AA AB ~ AC
>`.pickRestart({
  A: "e5@3 f#5 g5@2 f#5@2", B: "a5@3 f#5 e5@4", C: "g5@3 g5 f#5@4", D: "b5@3 b5 a5@2 b5@2", E: "c6@2 c6 g5 f#5@4",
  F: "b5!2 a5@2 c#6!2 b5@2", G: "c#6 b5 c#6 d6 f#6@4", H: "[e6 c#6@2 b5@2 g5]/3", I: "f#5", J: "g6@3 g6 a6@2 g6@2",
  K: "f#6 e6 d6@6", L: "g5@3 g5 a5@2 g5@2", M: "c6@3 c6 d6@2 c6@2", N: "b5 a5 g5@4 b5@2", O: "e6 d6", P: "e6@3 ~",
  Q: "[b5,d6]@3 [b5,d6] [a5,f#6]@2 [b5,d6]@2", R: "e6@2 e6!2 d#6@4", S: "e6!2 d6 ~ f#6!2 e6 ~", T: "[g#6@3 ~]/2",
  U: "g6 a6", V: "b6@8 f#5@2 b5@2 d#6@2 f#5!2", W: "e6@3 e6 f#6@2 d6@2", X: "d6@2 b5@2 a5@6 f#5 a5 d6@2 f#6@2",
  Y: "[e6,g6]@3 [e6,g6] [f#6,a6]@2 [e6,g6]@2", Z: "f#6@6 [a5,a6]!2", AA: "[c6,c7]@3 [c6,c7] [d6,d7]@2 [c6,c7]@2",
  AB: "b6 a6 g6@4 ~@2", AC: "[e6,e7]",
})).s("gm_piccolo").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@4 A B C D E F G H I J K ~@2 L M N O P Q R S T U V W X Y Z AA H AB@2 ~@5 AC AD ~ AE AF AG O
>`.pickRestart({
  A: "g4 f#4", B: "f#4 g4", C: "e4 d4", D: "c#4 a4!2 g4", E: "f#4 e4@2 d4", F: "d4@2 c4@2 ~ f#4 g4 f#4",
  G: "b4!2 a4@2 c#5!2 b4@2", H: "a4 b4", I: "g#4!2", J: "f#4", K: "~ d#4", L: "~@12 f#5@2 f#5!2", M: "b4", N: "a4",
  O: "e5", P: "d5", Q: "~@2 f#5 ~, ~ e5@2 ~", R: "e5 d5 e5@4 f#5@2", S: "d5 c5 a4@2", T: "g4@3 b4", U: "g4",
  V: "c#5@3 c#5 b4@4", W: "b4@3 b4 b4@3 b4", X: "a4@3 a4 g4@4", Y: "b4@3 b4 a4@2 b4@2", Z: "c5 d#5",
  AA: "b4@2 a4 ~ c#5@2 b4 ~", AB: "[g#4@3 ~]/2", AC: "d4@6 a4 f#4", AD: "g4@3 g4 a4@2 g4@2", AE: "~@6 c4 d4",
  AF: "b4 a4 g4@4 b4@2", AG: "d5 c5 d5@2",
})).s("gm_trumpet").gain(0.2)

// other · bassoon
const bassoon = note(`<
  ~@4 A B C D A E F G H I J K L M N O N P Q N R S T U V W A X Y Z AA AB@2 O Q O AC AD AC AE AF AG AH N
>`.pickRestart({
  A: "e3 d3", B: "c#3@2 e3 f#3", C: "g3@3 g3 f#3@2 d3@2", D: "c#3 e3", E: "e3@4 ~ f#3 g3 f#3", F: "e3 d3 c#3 b2",
  G: "c#4 b3 c#4 d4 f#4@4", H: "e4 d4 c#4@2", I: "c#3 b2", J: "b2!2", K: "f#2 b2 f#3 e3 d#3 b2 g2 f#2",
  L: "~@2 e3 f#3 g3 a3 f#3 d3", M: "b2@12 b2@2 b2!2", N: "e2", O: "b2", P: "d3 f#3 e3 d3", Q: "a2",
  R: "c3@4 d3 f#3 g3 f#3", S: "e3", T: "e2 g2", U: "a2@2 a3 g3", V: "e3 b2 g3 e3 d3 b2 f#3 d3",
  W: "c#3 a2 f#3 c#3 e3!2 g3 b3", X: "c3 b2", Y: "b2@2 a2 ~ a2@2 e2 ~", Z: "c#3 b2 c#3 d3 f#3@4", AA: "e3 d3 c#3@2",
  AB: "[b2 b2@2 b3]/2", AC: "[e2,g2]", AD: "[b2,d3]", AE: "d2 f#2 e2 d2", AF: "c3@7 d3", AG: "e2!2 g2 d2", AH: "c3 d3",
})).s("gm_bassoon").gain(0.4)

// other · violin
const violin = note(`<
  A B C D E F G H I@2 J K L M@2 D N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG@2 AH AI AJ R AK AL AM T U AN AO
>`.pickRestart({
  A: "b5@3 b5 a5@4", B: "g5@3 f#5 g5@2 f#5@2", C: "~ c5", D: "b4", E: "b4!2", F: "a4 b4", G: "e5@3 e5 d5@4",
  H: "c#5@2 a4 g4", I: "[f#4 e4@2 d4@2 c5 f#4@2]/2", J: "g4 a4!2 b4", K: "c#5 b4 c#5 d5 f#5@4", L: "e5 g#5",
  M: "[e5 d#5@2 b4]/2", N: "c5", O: "b4@12 f#5@2 f#5!2", P: "g5", Q: "f#5 e5 d5@6", R: "g5@3 g5 a5@2 g5@2", S: "f#5",
  T: "c6@3 c6 d6@2 c6@2", U: "b5 a5 g5@4 b5@2", V: "e5 d5", W: "e5@4 e5@3 b5", X: "e5@3 f#5 g5@2 f#5@2",
  Y: "a5@3 f#5 a4@2 g4@2", Z: "g5@3 g5 f#5@3 f#5", AA: "a5@3 f#5 e5@4", AB: "b5@3 b5 a5@2 b5@2", AC: "c6@2 c6 g5 f#5@4",
  AD: "e5 b4 a5 ~ c#6!2 b5 ~", AE: "c#6 b5 c#6 d6 f#6@4", AF: "e6 c#6", AG: "[b5 a5@2 g4]/2", AH: "d#4", AI: "e5 a5",
  AJ: "b5@4 e5 b5 d#6 f#5", AK: "f#5@2 e5@2 d5@6 f#4 a4 d5@2 f#5@2", AL: "[g5,e6]@3 [g5,e6] [a5,f#6]@2 [g5,e6]@2",
  AM: "[f#5,f#6]@6 a5!2", AN: "d6 c6 d6@2", AO: "e6",
})).s("gm_violin").gain(0.3)

// other · violin
const violin_2 = note(`<
  A B C D E F G H E I J K L M@2 D N O P Q R S N T U V@2 W X Y Z AA AB AC AD@3 D AE AF P AG AH AI AJ AK AL AH
>`.pickRestart({
  A: "g5@3 g5 f#5@4", B: "e5 d5", C: "~ a4", D: "f#4", E: "g4 f#4", F: "f#4 g4", G: "b4@3 b4 b4@4", H: "a4 b4",
  I: "e4 d#4", J: "e4 f#4!3", K: "a4 d5", L: "b4 e5", M: "[c#5 b4@2 g4]/2", N: "a4", O: "f#4@12 d#5@2 d#5!2", P: "e5",
  Q: "f#4 b3 c#4 b3", R: "g4@3 g4 a4@2 g4@2", S: "d4", T: "g4 f#4 e4@4 d4@2", U: "c5 a4", V: "[g4@4 g4@3 b5@9]/2",
  W: "c#5@3 a4 a4@2 g4@2", X: "b4@3 b4 b4@3 b4", Y: "c#5@3 a4 g4@4", Z: "e5@3 e5 d5@2 d5@2", AA: "e5 d#5",
  AB: "b4!2 d5 ~ c#5@2 e5 ~", AC: "f#5 e5 f#5 g5 b5@4", AD: "[g#5@3 f#5@2 g4]/3", AE: "c5 e5", AF: "f#5@4 d#5 f#5 b5!2",
  AG: "f#5@2 e5@2 f#5@6 f#5 a5 [e5,d6]@2 [f#5,f#6]@2", AH: "b5", AI: "d6", AJ: "a5", AK: "g5 f#5 e5@4 f#5@2", AL: "g5",
})).s("gm_violin").gain(0.4)

// other · cello · "Violoncello"
const cello = note(`<
  ~@2 A B C D E F C G H I J K L M N O P Q P R S T U V W X Y Z AA AB AC I AD AE AF AG AH AI AJ AK AJ R AL AM AN AO
>`.pickRestart({
  A: "b3 c4 g3 f#3 e3@3 e3", B: "f#3 c4 g3 f#3", C: "e3 d3", D: "c#3@2 e3 f#3", E: "g3@3 g3 f#3@2 d3@2", F: "c#3 e3",
  G: "e3@4 ~ f#3 g3 f#3", H: "e3 d3 c#3 b2", I: "c#4 b3 c#4 d4 f#4@4", J: "e4 d4 c#4@2", K: "f#3 g#3 f#3@2", L: "b2 g3",
  M: "f#3 b3 f#4 e4 d#4 b3 g3 f#3", N: "~@2 e3 f#3 g3 a3 f#3 d3", O: "f#3@12 f#3@2 f#3!2", P: "b2", Q: "f#3",
  R: "d3 f#3 e3 d3", S: "c3", T: "e3 f#3 g3@4 d3@2", U: "c3@4 d3 f#3 g3 f#3", V: "e3 g3 e3@2", W: "g3 d3",
  X: "d3@2 a3 g3", Y: "e2 b2 g3 e3 d3 b2 f#3 d3", Z: "c#3 a2 f#3 c#3 e3 g3 b3 e4", AA: "e3 g3 e3 b2 a2 d3 f#3 d3",
  AB: "c3 e3 a3 c4 b2 b3 d#4 f#4", AC: "g3@2 ~@2 f#3 ~@3 f#3@2 ~@2 e3 ~@3", AD: "e4@2 d4@2 c#4@3 e3",
  AE: "f#3 g#3 b2@2", AF: "d#3 b3", AG: "~ b3 g4 f#4 d#4 b3 g3 f#3", AH: "~@2 e3 f#3 g3 a3 f#3 e3", AI: "d#3",
  AJ: "e3 b3 g4 b3 a4 b3 g4 b3", AK: "b3 a3 b3@6", AL: "c3@7 d3", AM: "e3 b2 g3 d3", AN: "c3 g3 g3@2 ~ f#3 g3 f#3",
  AO: "[e3,e4]", // E
})).s("gm_cello").gain(0.4)

stack(flute, piccolo, trumpet, bassoon, violin, violin_2, cello)