Strudelify

dragon ball z intro theme - rock the dragon

Salomão Sidharta

KeyA majorTempo160 bpm
0:00/0:00
// dragon ball z intro theme - rock the dragon — Salomão Sidharta
// 160 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: duplicate parts dropped: ch 2 "Bb Clarinet" clarinet (copy of ch 1 "Oboe" oboe); ch 12 "Bass Clarinet" clarinet (copy of ch 11 "Baritone Saxophone" baritone sax)
// note: Transcription provider: pdmx. https://musescore.com/score/135178; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 74 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/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 · oboe
const oboe = note(`<
  ~ A B@3 A C@4 D E@2 F G@2 H I@2 J K F G@2 L M ~ N@2 O@2 P@2 Q@3 R S T U@2 V W X Y Z AA AB@3 AC@4 AD AE@2 AF@2 AG@2 AH
  AI AJ@6 AK@2 AL@3
>`.pickRestart({
  A: "~@2 a5 ~ g#5 e5 ~ a5", B: "[~ g#5 ~@3 g#5@2 g#5@2 a5 a5@2 a5@12]/3",
  C: "[~ g#5 ~@3 g#5@2 g#5@2 a5 a5@2 a5@8 ~ e5 f#5 g5@9]/4", D: "c7",
  E: "[~@2 a4@2 g#4 e4 ~ b4@2 b4 a4!2 g#4 b4@2 b4]/2", F: "b4 a4@2 e5@5", G: "[~@5 e4 f#4 g4@5 a4@4]/2",
  H: "b4@3 c5@3 ~ d5", I: "[d5!2 c5!2 b4 a4 g4 b4@5 ~@4]/2", J: "~@2 a4@2 g#4 e4!2 d#4", K: "b4!2 a4!2 g#4 b4@2 b4",
  L: "b4@2 c5@2 d5@2 c5!2", M: "c5 b4 b4@6", N: "[c#5@4 ~ g#4 c#5 b4@3 a4@2 g#4@2 f#4@2]/2",
  O: "[a4@6 g#4 g#4@5 ~@4]/2", P: "[~@4 a4 g#4 e4 a4@2 g#4 e4@2 ~@4]/2",
  Q: "[~@2 e4@2 a4 g#4 e4 a4@2 g#4@2 e4 a4@2 b4 b4@9]/3", R: "~ b3 d#4 f#4 d#4 f#4 a4 b4", S: "d5@3 e5@3 ~@2",
  T: "~ d5@3 ~@3 d5@3 e5@9 ~@5", U: "[~@8 f#5@6 g5@6 g5@3 e5@6 f#5@3 ~ g5@6 f#5@6 e5@3]/2", V: "e5@2 d5 d5@4 ~",
  W: "~ g5@6 g5@3 f#5@3 f#5@3 d5@3 e5@5", X: "~ e5@11", Y: "~@5 c#5@9 ~ a4@9", Z: "~@2 d5@3 e5@3",
  AA: "~@7 d5@3 ~@3 d5@3 e5@8", AB: "[~@14 f#5@6 g5@6 g5@3 e5@6 ~ f#5@3 g5@6 f#5@6 e5@3 e5@6 d5@3 d5@6 ~@3]/3",
  AC: "[~ b4@3 d5@3 e5@3 f5@6 f5@6 f5@6 ~ f5@6 d5@9 e5@9 ~@7 d5@3 ~@3 d5@3 e5@9 ~@13 f#5@5]/4",
  AD: "~ g5@6 g5@3 e5@6 f#5@3 g5@5", AE: "[~@2 f#5@6 e5@3 e5@6 d5@3 d5@12 ~@4 g5@6 g5@3 f#5@3]/2",
  AF: "[f#5@3 d5@3 e5@6 e5@22 ~@6 c#5@8]/2", AG: "[~@2 a4@9 ~@6 d5@9 e5@9 ~@7 d5@3 ~@3]/2", AH: "d5 e5@3 ~@4",
  AI: "~ f#5@6 g5@6 g5@3 e5@6 f#5@2",
  AJ: "[~@2 g5@6 f#5@6 e5@3 e5@6 d5@3 d5@6 ~@4 b4@3 d5@3 e5@3 f5@6 f5@6 f5@6 f5@6 ~ f5@24 c4@25 e4@25]/6",
  AK: "[g5@43 g5@3 a5@2]/2",
  AL: "[~@9 a5@2 ~ d5@2 ~ a5@2 d6@2 ~ g5@2 ~ g5@2 ~ d6@2 ~ g5@2 d5@2 ~ g4@2 ~ g4@2 ~ d5@2 ~ g4@2 d4@6 ~@21, ~@8 d6@2 ~ g5@2 ~ g5@2 ~@3 a5@2 ~ d5@2 ~ a5@2 ~ a5@2 ~@3 a4@2 ~ d4@2 ~ a4@2 ~ a4@2 ~@28]/3",
})).s("gm_oboe").gain(0.4)

// other · trumpet · "Bb Trumpet"
const trumpet = note(`<
  ~ A B@3 A C@4 D E@2 F G@2 H@2 ~@4 I ~ J@2 ~ K@2 L@2 ~@3 M@2 N O P Q@3 R S T U V W@3 X@4 Y Z@2 AA@2 AB@2 AC AD AE@2
  AF@2 ~@2 AG@2 ~ AH@2
>`.pickRestart({
  A: "~@2 f#5 ~ e5!2 ~ f#5", B: "[~ e5 ~@3 e5@2 e5@2 f#5 f#5@2 f#5@8 ~@4]/3",
  C: "[~ e5 ~@3 e5@2 e5@2 f#5 f#5@2 f#5@8 ~@3 d5@9]/4", D: "g5", E: "[~@2 e4@2 e4!2 ~ g#4@2 g#4 f#4!2 e4 g#4@2 g#4]/2",
  F: "g#4 e4@2 e4@5", G: "[~@5 e4 f#4 e4@5 f#4@4]/2", H: "[g4@3 g4@3 ~ g4@2 g4!2 ~ g4 ~ g4 ~]/2",
  I: "f#4 f#4@2 f#4@2 ~@3", J: "[g4@2 g4@2 g4@2 g4 g4@2 f#4 f#4@6]/2", K: "[g#4@4 ~ g#4 e4 f#4@3 ~@6]/2",
  L: "[e4@6 e4 e4@5 ~@4]/2", M: "[~@7 f#4@9]/2", N: "~ b3 d#4 f#4 d#4 f#4 a4 b4", O: "b4@3 c#5@3 ~@2",
  P: "~ b4@3 ~@3 b4@3 c#5@9 ~@5", Q: "[~@8 d5@6 d5@6 d5@3 c#5@6 ~@10 f#4@12 f#4@12 ~@9]/3",
  R: "~ d5@6 d5@3 b4@3 b4@3 c5@3 c5@5", S: "~ d5@11", T: "~@5 a4@9 ~ e4@9", U: "~@2 b4@3 c#5@3",
  V: "~@7 b4@3 ~@3 b4@3 c#5@8", W: "[~@14 d5@6 d5@6 d5@3 c#5@6 ~ c#5@3 d5@6 c#5@12 b4@12 ~@3]/3",
  X: "[~@10 d5@6 d5@6 d5@6 ~ d5@6 b4@9 c#5@9 ~@7 b4@3 ~@3 b4@3 c#5@9 ~@13 d5@5]/4", Y: "~ d5@6 d5@3 c#5@6 ~@8",
  Z: "[~@2 c#5@12 b4@12 ~@10 d5@6 d5@3 b4@3]/2", AA: "[b4@3 c5@3 c5@6 d5@22 ~@6 a4@8]/2",
  AB: "[~@2 e4@9 ~@6 b4@9 c#5@9 ~@7 b4@3 ~@3]/2", AC: "b4 c#5@3 ~@4", AD: "~ d5@6 d5@6 d5@3 c#5@6 c#5@2",
  AE: "[~@2 d5@6 f#4@12 f#4@12 ~@13 d5@3]/2", AF: "[~@3 d5@3 ~@3 d5@3 ~@3 d5@3 ~@4 d5@25 ~]/2",
  AG: "[d4@43 c#4@3 d4@2]/2",
  AH: "[~@5 g5@2 d5@2 ~ g4@2 ~ g4@2 ~ d5@2 ~ g4@2 d4@6 ~@21, ~@4 a5@2 ~@3 a4@2 ~ d4@2 ~ a4@2 ~ a4@2 ~@28]/2",
})).s("gm_trumpet").gain(0.4)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~ A B@3 A C@4 D ~@5 E@2 ~ F G H I@2 J@2 ~@10 K L M N@3 ~@3 O P ~ Q@2 R@4 S T@2 ~@2 U@2 V ~ W@2 X@4 Y@2 Z@3
>`.pickRestart({
  A: "~@2 e4 ~ e4!2 ~ e4", B: "[~ e4 ~@3 e4@2 e4@2 d4 d4@2 d4@12]/3", C: "[~ e4 ~@3 e4@2 e4@2 d4 d4@2 d4@8 ~@3 d4@9]/4",
  D: "d4", E: "[e3@3 e3@3 ~ g3@2 g3!2 ~ g3 ~ g3 ~]/2", F: "~@2 a3@2 g#3 e3@2 e3", G: "b3!2 a3!2 g#3 b3@2 b3",
  H: "b3 a3@2 e4@3 ~@2", I: "[~@5 e4 f#4 e4@5 f#4@4]/2", J: "[e4@2 e4@2 e4@2 e4 e4@2 d#4 d#4@6]/2",
  K: "~ b3 d#4 f#4 d#4 f#4 a4 b4", L: "d4@3 e4@3 ~@2", M: "~ d4@3 ~@3 d4@3 e4@9 ~@5",
  N: "[~@8 a3@6 b3@6 b3@3 c#4@6 ~@10 c#5@12 b4@12 ~@9]/3", O: "~@2 d4@3 e4@3", P: "~@7 d4@3 ~@3 d4@3 e4@8",
  Q: "[~@7 c#4@4 b3@4 ~]/2", R: "[~@10 a#3@6 a#3@6 a#3@6 ~ a#3@6 g3@9 a3@9 ~@7 d4@3 ~@3 d4@3 e4@9 ~@13 a3@5]/4",
  S: "~ b3@6 b3@3 c#4@6 ~@8", T: "[~ f#4@6 f#4@6 ~@11]/2", U: "[~@17 d4@9 e4@9 ~@7 d4@3 ~@3]/2", V: "d4 e4@3 ~@4",
  W: "[~@8 c#5@12 b4@12 ~@13 a#3@3]/2", X: "[~@3 a#3@3 ~@3 a#3@3 ~@3 a#3@3 ~@4 a#3@24 c4@25 a3@25]/4",
  Y: "[g3@43 g3@3 a3@2]/2",
  Z: "[~@9 a4@2 ~ d4@2 ~ a4@2 d5@2 ~ g4@2 ~ g4@2 ~ d5@2 ~ g4@2 d4@2 ~ g3@2 ~ g3@2 ~ d4@2 ~ g3@2 d3@6 ~@21, ~@8 d5@2 ~ g4@2 ~ g4@2 ~@3 a4@2 ~ d4@2 ~ a4@2 ~ a4@2 ~@3 a3@2 ~ d3@2 ~ a3@2 ~ a3@2 ~@28]/3",
})).s("gm_alto_sax").gain(0.4)

// other · bassoon
const bassoon = note(`<
  ~ A B@3 A C@4 D E@2 F G@2 H@3 ~ I J K@2 ~@3 L ~ M@2 ~@3 N@2 O P Q R@2 S T U V W X Y@3 Z@4 AA AB@2 AC@2 AD@2 AE AF AG@2
  AH@4 ~@2 AI@3
>`.pickRestart({
  A: "~@2 b3 ~ b3!2 ~ b3", B: "[~ b3 ~@3 b3@2 b3@2 a3 a3@2 a3@12]/3", C: "[~ b3 ~@3 b3@2 b3@2 a3 a3@2 a3@8 ~@3 a3@9]/4",
  D: "c4", E: "[~@2 b3@2 e4 b3 ~ b3@2 b3 a3!2 g#3 b3@2 b3]/2", F: "b3 a3@2 e4@5", G: "[~@5 e3 f#3 e3@5 d3@4]/2",
  H: "[e3@3 e3@3 ~ d3@2 d3!2 ~ d3 ~ d3 b3@5 ~@4]/3", I: "g#3!2 f#3!2 e3 g#3@2 g#3", J: "g#3 f#3@2 a3@3 ~@2",
  K: "[~@5 e4 f#4 g4@5 a4@4]/2", L: "e3 ~", M: "[b3@6 b3 b3@5 ~@4]/2", N: "[~@7 d#4@9]/2",
  O: "~ b2 d#3 f#3 d#3 f#3 a3 b3", P: "g3@3 a3@3 ~@2", Q: "~ g3@3 ~@3 g3@3 a3@9 ~@5",
  R: "[~@8 f#3@6 g3@6 g3@3 e3@6 f#3@3 ~ g3@6 f#3@6 e3@3]/2", S: "e3@2 d3 d3@4 ~", T: "~ b3@6 b3@3 d4@3 d4@3 c4@3 c4@5",
  U: "~ d4@11", V: "~@5 g3@9 ~ c#4@9", W: "~@2 g3@3 a3@3", X: "~@7 g3@3 ~@3 g3@3 a3@8",
  Y: "[~@14 f#3@6 g3@6 g3@3 e3@6 ~ f#3@3 g3@6 f#3@6 e3@3 e3@6 d3@3 d3@6 ~@3]/3",
  Z: "[~@10 f3@6 f3@6 f3@6 ~ f3@6 g3@9 a3@9 ~@7 g3@3 ~@3 g3@3 a3@9 ~@13 f#3@5]/4", AA: "~ g3@6 g3@3 e3@6 f#3@3 g3@5",
  AB: "[~@2 f#3@6 e3@3 e3@6 d3@3 d3@12 ~@4 b3@6 b3@3 d4@3]/2", AC: "[d4@3 c4@3 c4@6 d4@22 ~@6 g3@8]/2",
  AD: "[~@2 c#4@9 ~@6 g3@9 a3@9 ~@7 g3@3 ~@3]/2", AE: "g3 a3@3 ~@4", AF: "~ f#3@6 g3@6 g3@3 e3@6 f#3@2",
  AG: "[~@2 g3@6 f#3@6 e3@3 e3@6 d3@3 d3@6 ~@13 f3@3]/2", AH: "[~@3 f3@3 ~@3 f3@3 ~@3 f3@3 ~@4 f3@24 g3@25 e3@25]/4",
  AI: "[~@9 a3@2 ~ d3@2 ~ a3@2 d4@2 ~ g3@2 ~ g3@2 ~ d4@2 ~ g3@2 d3@2 ~ g2@2 ~ g2@2 ~ d3@2 ~ g2@2 d2@6 ~@21, ~@8 d4@2 ~ g3@2 ~ g3@2 ~@3 a3@2 ~ d3@2 ~ a3@2 ~ a3@2 ~@3 a2@2 ~ d2@2 ~ a2@2 ~ a2@2 ~@28]/3",
})).s("gm_bassoon").gain(0.45)

// other · string ensemble 1 · "Violins 1"
const string_ensemble_1 = note("<A ~@3 B ~@3 C ~ D ~@19 E F E F ~@2 G ~@32 H ~ I@3>".pickRestart({
  A: "b5 ~ f#5 e5 ~ b4 e5 ~ f#5 b5 ~ f#5 e5 ~ b4 e5 ~ f#5 b5@3 ~@3", B: "[a3,d4,f#4]@3 [a3,d#4]@5, ~@3 d4 ~@4",
  C: "[a3,d4,f#4] ~", D: "c7", E: "~@2 [b3,b4,b5] [a3,a4,a5]", F: "[e4,e5,e6] ~@3", G: "b3@3 b3@4 ~", H: "[d4,g4,g5]",
  I: "[~@9 a5@2 ~ d5@2 ~ a5@2 d6@2 ~ g5@2 ~ g5@2 ~ d6@2 ~ g5@2 d5@2 ~ g4@2 ~ g4@2 ~ d5@2 ~ g4@2 d4@6 ~@21, ~@8 d6@2 ~ g5@2 ~ g5@2 ~@3 a5@2 ~ d5@2 ~ a5@2 ~ a5@2 ~@3 a4@2 ~ d4@2 ~ a4@2 ~ a4@2 ~@28]/3",
})).s("gm_string_ensemble_1").gain(0.25)

// other · trumpet · "A Piccolo Trumpet"
const trumpet_2 = note("<A ~@13 B ~@3 C ~@3 B ~@3 D ~@3 E F E F ~@2 G ~@34 H@3>".pickRestart({
  A: "b5 ~ f#5 e5 ~ b4 e5 ~ f#5 b5 ~ f#5 e5 ~ b4 e5 ~ f#5 b5@3 ~@3", B: "b5 a5@2 e6@4 ~",
  C: "~@12 b5 ~ a5 f#5 ~ d#5 b4 ~ a4 f#4 ~ d#4", D: "b3 ~ d#4 f#4 ~ a4 b4 ~ d#5 f#5 ~ a5 b5@12", E: "~@2 b5 a5",
  F: "e6 ~", G: "~ b4 d#5 f#5 d#5 f#5 a5 b5",
  H: "[~@9 a5@2 ~ d5@2 ~ a5@2 d6@2 ~ g5@2 ~ g5@2 ~ d6@2 ~ g5@2 d5@2 ~ g4@2 ~ g4@2 ~ d5@2 ~ g4@2 d4@6 ~@21, ~@8 d6@2 ~ g5@2 ~ g5@2 ~@3 a5@2 ~ d5@2 ~ a5@2 ~ a5@2 ~@3 a4@2 ~ d4@2 ~ a4@2 ~ a4@2 ~@28]/3",
})).s("gm_trumpet").gain(0.5)

stack(oboe, trumpet, alto_sax, bassoon, string_ensemble_1, trumpet_2)