Strudelify

iron man 3 theme

Brian Tyler

KeyG majorTempo130 bpm
0:00/0:00
// iron man 3 theme — Brian Tyler
// 130 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/2606911; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · trombone
const trombone = note(`<
  ~@7 A@6 B@2 ~@8 C@2 D E F G H I J K L M N@2 L M C@2 O P Q R H I ~ S ~@3 T U V W X Y ~ Z@2 AA AB AC V AD AE AF@2 ~@4
>`.pickRestart({
  A: "[~@14 e4@6 ~ f#4@6 g4@6 e4@6 ~ c5@52 c5@52]/6", B: "b4/2", C: "[c#4 d4 e4@14]/2", D: "~@2 e3 f#3 g3@2 e3@2",
  E: "~@2 g3 a3 b3@2 g3@2", F: "~@2 f#3 g3 a3@2 f#3@2", G: "g3", H: "c4@3 c4!3", I: "d4", J: "~@6 f#4!2",
  K: "g4 f#4!3 g4 f#4!3", L: "~@2 e4 f#4 g4@2 e4@2", M: "c5 g4", N: "[a4 e4 a4@14]/2", O: "~ e4", P: "~ g4", Q: "~ a4",
  R: "~@2 c5 g4", S: "~@3 f#4 g4 f#4!3", T: "~@6 e4!3 f#4!3", U: "~@2 a3 b3 c4@2 a3@2", V: "f4 c4", W: "~@3 g3",
  X: "a3 c4", Y: "e4", Z: "[f#4 g4 a4@14]/2", AA: "c4 a3", AB: "f4 e4", AC: "d4 g4", AD: "f4@3 f4!3", AE: "g4",
  AF: "c5 b4!3 c5 b4!3",
})).s("gm_trombone").gain(0.4)

// other · trombone · soft notes
const trombone_soft = note("<~@31 [g4 f#4!3 g4 f#4 ~@2] ~@15 [g4 f#4!3 g4 f#4!3] [g4 f#4!2 ~@5] ~@24>")
  .s("gm_trombone").gain(0.25)

// other · trombone
const trombone_2 = note(`<
  ~@17 A B C@2 ~@8 D E ~ F A B C@2 A B G ~@5 D E ~ H ~@3 I J K L M J K N ~@5 O P ~@6
>`.pickRestart({
  A: "~@2 e3 f#3 g3@2 e3@2", B: "c4 g3", C: "[a3 e3 a3@14]/2", D: "~@3 e3 f#3 g3", E: "f#3 a3", F: "g4 f#4!3 g4 f#4!3",
  G: "c#4 d4 e4@6", H: "~@5 f#4!3", I: "~@3 d4!3 e4!3 f#4!3", J: "e4 ~@2 e4!2 ~ e4!2", K: "c4 ~@2 c4!2 ~ c4!2",
  L: "d4 ~@2 d4 ~@2 d4 ~", M: "d4 ~@2 d4 ~ d4 c4 b3", N: "d4", O: "~@3 a3 b3 c4", P: "b3 d4",
})).s("gm_trombone").gain(0.45)

// other · trombone · soft notes
const trombone_soft_2 = note("<~@31 A ~@15 A B ~@18 C D ~@4>".pickRestart({
  A: "b3", B: "g4 f#4!3 g4 ~@3", C: "e4", D: "c4 b3!3 c4 b3!3",
})).s("gm_trombone").gain(0.2)

// other · trombone
const trombone_3 = note(`<
  ~@21 A B C@2 D E F G H I ~ J A K L@2 A K C@2 A M F G H I ~ N ~@2 O P Q R Q S Q R T U I V G W X Y ~@6
>`.pickRestart({
  A: "~@2 e3 f#3 g3@2 e3@2", B: "c4 b3", C: "[c#4 d4 e4@14]/2", D: "~ e3", E: "~ g3", F: "~@2 f#3 g3 a3@2 f#3@2",
  G: "g3", H: "g3@3 g3!3", I: "a3", J: "g3 f#3!3 g3 f#3!3", K: "c4 g3", L: "[a3 e3 a3@14]/2", M: "~@2 g3 a3 b3@2 g3@2",
  N: "~@5 f#3!3", O: "~@9 b3!3", P: "c4!3 d4!3 e4!3 f#4!3", Q: "a3 ~@2 a3 ~@2 a3 ~", R: "c4 ~@2 c4 ~@2 c4 ~",
  S: "a3 ~@2 a3 ~@2 a3!2", T: "d4 ~@2 d4 ~@2 d4 ~", U: "d4 ~@2 d4 ~@2 d4 a3", V: "c4", W: "f3", X: "c4@3 c4!3", Y: "d4",
})).s("gm_trombone").gain(0.45)

// other · trombone · soft notes
const trombone_soft_3 = note("<~@31 A ~@15 A B ~@18 C D ~@4>".pickRestart({
  A: "b3", B: "g3 f#3!3 g3 ~@3", C: "e4", D: "c4 b3!3 c4 b3!3",
})).s("gm_trombone").gain(0.2)

// other · trombone
const trombone_4 = note(`<
  ~@5 A@8 B@5 C D@2 B C D@2 B C E C F G H@2 I J K@2 I J K@2 L M N O F G H@2 ~@2 P Q R S T@2 R S U@2 V O W X Y Z AA@2 ~@4
>`.pickRestart({
  A: "[~@10 e3@6 ~ f#3@6 g3@6 ~ e3@6 b3@104 c3@52]/8", B: "e3 ~@2 e3 ~@2 e3 ~", C: "g3 ~@2 g3 ~@2 g3 ~",
  D: "a3 ~@2 a3 ~@2 a3 ~", E: "d3 ~@2 d3 ~@2 d3 ~", F: "~@3 e3 f#3 g3", G: "f#3 a3", H: "b3/2", I: "b3 ~@2 b3!2 ~ b3!2",
  J: "g3 ~@2 g3!2 ~ g3!2", K: "e4 ~@2 e4!2 ~ e4!2", L: "~@2 e3 f#3 g3@2 e3@2", M: "~@2 g3 a3 b3@2 g3@2",
  N: "~@2 f#3 g3 a3@2 f#3@2", O: "g3", P: "~@6 a3!3 b3!3", Q: "c3!3 d3!3 e3!3 f#3!3", R: "~@2 a3 b3 c4@2 a3@2",
  S: "f4 c4", T: "[d4 a3 d4@14]/2", U: "[f#3 g3 a3@14]/2", V: "e3", W: "d3", X: "c3", Y: "~@3 a3 b3 c4", Z: "b3 d4",
  AA: "e4/2",
})).s("gm_trombone").gain(0.45)

// other · trombone
const trombone_5 = note(`<
  ~@11 A B C@5 D E@2 C D E@2 F G H I J K L M N O P@2 N O P@2 Q R S T J K ~@3 U V W X Y Z@2 X Y Z@2 AA AB AC AD AE AF ~@6
>`.pickRestart({
  A: "~@9 g2@3 e2@3 ~@7 g2@2", B: "~ e2@3 ~ g2@3 g2@3 g2@3 e2@3 ~ g2 g2@2 g2 g2@2", C: "g3 e3!2 g3 e3!2 g3 e3",
  D: "c4 g3!2 c4 g3!2 c4 g3", E: "e3 a2!2 e3 a2!2 e3 a2", F: "e3", G: "g3", H: "d3", I: "c3", J: "~@3 e2 f#2 g2",
  K: "f#2 a2", L: "~@3 b2!2 ~@2 b2", M: "b2 ~@2 b2!5", N: "e3 ~@2 e3 ~@2 e3 ~", O: "g3 ~@2 g3 ~@2 g3 ~",
  P: "a3 ~@2 a3 ~@2 a3 ~", Q: "e3 ~@2 e3 ~@2 e3!2", R: "g3 ~@2 g3 ~@2 g3!2", S: "d3 ~@2 d3 ~@2 d3!2",
  T: "c3 ~@2 c3 ~@2 c3!2", U: "~@7 g3 f3 g3 f3 g3", V: "a3 g3 f3 g3!3 a3!3 b3!3", W: "c3!3 d3!3 e3!3 f#3!3",
  X: "e3 ~@2 e3!2 ~ e3!2", Y: "c3 ~@2 c3!2 ~ c3!2", Z: "a3 ~@2 a3!2 ~ a3!2", AA: "~@2 a3 b3 c4@2 a3@2",
  AB: "~@2 c4 d4 e4@2 c4@2", AC: "~@2 b3 c4 d4@2 b3@2", AD: "c4", AE: "~@3 a2 b2 c3", AF: "b2 d3",
})).s("gm_trombone").gain(0.35)

// other · trombone · soft notes
const trombone_soft_4 = note("<~@2 A B C D@2 E F G H@2 ~@19 I ~@15 J K ~ L ~@16 M N ~@4>".pickRestart({
  A: "~@4 g2@3 e2@3 ~@7 g2@3 e2@3 ~", B: "~@6 g2@3 e2@3 ~@7 g2@3 e2@2", C: "~@8 g2@3 e2@3 ~@7 g2@3",
  D: "[e2@3 ~@7 g2@3 e2@3 ~@7 g2@3 e2@3 ~@7 g2@3 e2@3 ~@6]/2", E: "~ g2@3 e2@3 ~@7 g2@3 e2@3 ~@4",
  F: "~@3 g2@3 e2@3 ~@7 g2@3 e2@3 ~@2", G: "~@5 g2@3 e2@3 ~@7 g2@3 e2@3", H: "[~@7 g2@3 e2@3 ~@7 g2@3 e2@3 ~@22]/2",
  I: "b2 ~@7", J: "b2 ~@2 b2!2 ~@2 b2", K: "b2 ~@2 b2!5", L: "a3 g3 f3 g3 f3 g3 a3 ~@5", M: "e3 ~@2 e3!2 ~@2 e3",
  N: "e3 ~@2 e3!5",
})).s("gm_trombone").gain(0.2)

// bass · trombone · "Bass Trombone"
const bass = note(`<
  A@6 B@7 C@4 D E F@2 D E F@2 D G H I J H K@2 L M N@2 L M N O D G H E J H K@2 P@4 Q R S T Q R S@2 U V W X Y G Z@2 ~@4
>`.pickRestart({
  A: "e2/6", B: "[~@3 e2@26 e2@13]/7", C: "e2 ~@2 e2 ~@2 e2 ~", D: "b2", E: "g2", F: "a2/2", G: "d3", H: "a2", I: "c3",
  J: "g2@3 g2!3", K: "b2/2", L: "b2!8", M: "g2!8", N: "e3!8", O: "e3!7 a2", P: "e3/4", Q: "a2!8", R: "c3!8", S: "d3!8",
  T: "d3!6 c3 b2", U: "e3 ~@2 e3 ~@2 e3!2", V: "g3 ~@2 g3 ~@2 g3!2", W: "d3 ~@2 d3 ~@2 d3!2", X: "c3 ~@2 c3 ~@2 c3!2",
  Y: "c3@3 c3!3", Z: "e3/2",
})).s("gm_trombone").gain(0.45)

// bass · trombone · "Bass Trombone"
const bass_2 = note(`<
  A@6 B@7 C@5 D E@2 C D E@2 F G H I J H K@2 L M N@2 L M N O F G H I J H K@2 P Q@3 L R N S L R N@2 E T D U V G W@2 X@4
>`.pickRestart({
  A: "e2/6", B: "[~@3 e2@26 e2@13]/7", C: "e2 ~@2 e2 ~@2 e2 ~", D: "g2 ~@2 g2 ~@2 g2 ~", E: "a2 ~@2 a2 ~@2 a2 ~",
  F: "e2", G: "g2", H: "d2", I: "c2", J: "c2@3 c2!3", K: "b1/2", L: "e2!8", M: "g2!8", N: "a2!8", O: "a2!7 e2",
  P: "~@9 f#2!3", Q: "f#2/3", R: "c2!8", S: "a2!6 g2 f2", T: "c3 ~@2 c3 ~@2 c3 ~", U: "f2 ~@2 f2 ~@2 f2 ~",
  V: "f2@3 f2!3", W: "e2/2", X: "a1/4",
})).s("gm_trombone").gain(0.45)

stack(
  trombone, trombone_soft, trombone_2, trombone_soft_2, trombone_3, trombone_soft_3, trombone_4, trombone_5,
  trombone_soft_4, bass, bass_2
)