Strudelify

Forrest Gump

Alan Silvestri

KeyB majorTempo105 bpm
0:00/0:00
// Forrest Gump — Alan Silvestri
// 105 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5183620; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 38 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(105/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 · trumpet · "Tromba in Si♭"
const trumpet = note("<~@12 A@2 B@2 C@2 D ~@9 E@2 F@2 G@2 H@2 ~@2>".pickRestart({
  A: "[f#5 g#5 a5 a5@2 f#5@2 a5@3 f#5 a5@2 f#5@3]/2", B: "[d5 e5 f#5 f#5@2 d5@2 f#5@9]/2",
  C: "[d5 e5 f#5 f#5@2 d5@2 b4@3 c#5 d5@2 b4@3]/2", D: "a4", E: "[a4 b4 c#5 c#5@2 a4@2 c#5@3 a4 c#5@2 a4@3]/2",
  F: "[f#4 g#4 a4 a4@2 f#4@2 a4@9]/2", G: "[f#4 g#4 a4 a4@2 f#4@2 d4@3 e4 f#4@2 d4@3]/2",
  H: "[c#5 d5 e5 e5@2 a5@2 e5@7 ~@2]/2",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "Tromba in Si♭"
const trumpet_2 = note("<~@11 A B@2 C@2 D@2 E ~ F G H I J K F G F G H I J K L@4>".pickRestart({
  A: "~@2 a4 g#4", B: "[a4 b4 c#5 c#5@2 a4@2 c#5@3 a4 c#5@2 a4@3]/2", C: "[f#4 g#4 a4 a4@2 f#4@2 a4@9]/2",
  D: "[f#4 g#4 a4 a4@2 f#4@2 d4@3 e4 f#4@2 d4@3]/2", E: "c#4", F: "a4 g#4", G: "f#4 e4", H: "d4 c#4", I: "b3 a3",
  J: "b4 a4", K: "g#4 e4", L: "e4/4",
})).s("gm_trumpet").gain(0.25)

// other · tuba · "Eufonio"
const tuba = note("<~@4 A@2 B@2 C@2 D@2 E F G H I J K ~ L ~ M ~ N O P Q R@2 S@2 T@2 U@2 V@2>".pickRestart({
  A: "[c#4 d4 e4 e4@2 c#4@2 e4@2 a4@2 e4@2 c#4@3]/2", B: "[d4 e4 f#4 f#4@2 d4@2 f#4@9]/2",
  C: "[d4 e4 f#4 f#4@2 d4 ~ f#4@2 b4@2 g#4@2 e4@3]/2", D: "[c#4 d4 e4 e4@2 a4@2 e4@9]/2", E: "a3 g#3", F: "f#3 e3",
  G: "d3 c#3", H: "b2 a2", I: "b3 a3", J: "g#3 e3", K: "a3", L: "a2 e3 a3 b3@5", M: "a2 f#3 a3 d4@5",
  N: "b2 f#3 b3 d4@5", O: "~ g#3 b3 e4@3 e3@2", P: "a2 e3 a3 c#4@5", Q: "~@2 a3 g#3",
  R: "[f#3 c#4 f#4 a4 a4@8 f#3@2 e3@2]/2", S: "[d3 a3 f#4 e4 f#4@8 d3@2 c#3@2]/2",
  T: "[b2 f#3 d4 c#4 d4@6 e3 d4@3 e3@2]/2", U: "[a2 e3 c#4 b3 c#4@10 e3@2]/2", V: "[a2 e3 c#4 b3 c#4@12]/2",
})).s("gm_tuba").gain(0.2)

// bass · tuba
const bass = note("<A@8 B C A@2 D E F G H I A@6 B@2 A@2 J@2 K@2 L C M@4>".pickRestart({
  A: "a2", B: "b2", C: "e2", D: "f#2", E: "f#2@2 e2!2", F: "d2", G: "d2@2 d2 c#2", H: "b2 a2", I: "g#2 e2",
  J: "[f#2@6 f#2 e2]/2", K: "[d2@6 d2 c#2]/2", L: "b1", M: "a2/4",
})).s("gm_tuba").gain(0.2)

stack(trumpet, trumpet_2, tuba, bass)

More by Alan Silvestri