Strudelify

Forrest Gump - Main Title

Joshua667746

KeyA majorTempo120 bpm
0:00/0:00
// Forrest Gump - Main Title — Joshua667746
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5857778; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · piano
const piano = note(`<
  ~@4 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L@2 E@2 F@2 M@2 N O P@2 Q R S T U@2 V@2 W@2 X@2 Y Z AA AB AC AB AD AB
  AC AE AF AE AG AH AI AB AJ
>`.pickRestart({
  A: "[c#5 d5 e5 e5@2 c#5@2 e5@2 a5@2 e5@2 c#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 f#5@2 b5@2 g#5@2 e5@3]/2", D: "[c#5 d5 e5 e5@2 a5@2 e5@9]/2",
  E: "[[a4,f#5] [b4,g#5] [c#5,a5] [c#5,a5]@2 [a4,f#5]@2 [c#5,a5]@3 [a4,f#5] [c#5,a5]@2 [a4,f#5]@3]/2", // D E F#m D F#m D F#m D
  F: "[[f#4,d5] [g#4,e5] [a4,f#5] [a4,f#5]@2 [f#4,d5]@2 [a4,f#5]@9]/2", // D C#m D
  G: "[[f#5,d6] [g#5,e6] [a5,f#6] [a5,f#6]@2 [f#5,d6]@2 [d5,b5]@3 [e5,c#6] [f#5,d6]@2 [d5,b5]@3]/2", // D C#m D G C#m D G
  H: "[[c#5,a5]@12 ~ e4 a4 b4]/2", // F#m
  I: "[c#5 d5 e5 ~@2 c#5@2 ~@2 a5@2 ~@2 c#5@3, ~@3 e5@2 ~@2 e5@2 ~@2 e5@2 ~@3, ~ g#4 f#4 e4]/2",
  J: "[d5 d5@4 e5 f#5 ~ b4@4 a4@4, ~@7 f#5@9]/2",
  K: "[d5 e5 f#5 ~@2 d5@2 ~@2 b5@2 g#5@2 e5@3, b4 a4 g#4@2, ~@3 f#5@2 ~@2 f#5@2 ~@7]/2",
  L: "[c#5 d5 e5 ~@2 a5@2 ~ f#4@4 e4@4, a4 g#4 ~@2, ~@3 e5@2 ~@2 e5@9]/2",
  M: "[[f#4,d5] [g#4,e5] [a4,f#5] [a4,f#5]@2 [f#4,d5]@2 [d4,b4]@3 [e4,c#5] [f#4,d5]@2 [d4,b4]@3]/2", // D C#m D G C#m D G
  N: "c#5 d5 e5 e5@2 a5@2 e5, a4", O: "~ b4 ~ b5 ~ e5 b5 e6, e5!2 ~@2",
  P: "[c#5 d5 e5 e5@2 a5@2 [c#5,e5]@5 a4 b4 c#5 d5, a5 ~@3]/2", Q: "~ e5 f5 g5 g5@3 ~, ~ c5@4 ~@3",
  R: "~@2 c6 ~@2 e5@3, a4 g4, ~@3 g5@2 ~@3", S: "f5 g5 a5 a5@2 f5@2 a5", T: "~@2 f6 e6 d6 ~ f5 e5, a5@5 a5@3",
  U: "[f5 g5 a5 ~@2 f5@2 ~@3 d6 a#5@2 g5@3, d5 c5 a#4@2, ~@3 a5@2 ~@2 a5@3 ~@6]/2",
  V: "[e5 f5 g5 ~@2 c6@2 ~ a4@4 g4@4, c5 a#4 ~@2, ~@3 g5@2 ~@2 g5@9]/2",
  W: "[[c5,a5] [d5,b5] [e5,c6] [e5,c6]@2 [c5,a5]@2 [e5,c6]@3 [c5,a5] [e5,c6]@2 [c5,a5]@3]/2", // F G C F C F C F
  X: "[[a4,f5] [b4,g5] [c5,a5] [c5,a5]@2 [a4,f5]@2 [c5,a5]@9]/2", // Dm Em F Dm F
  Y: "[a4,f5] [b4,g5] [c5,a5] [c5,a5]@2 [a4,f5]@2 [f4,d5]", Z: "[f4,d5]@2 [g4,e5] [a4,f5]@2 [f4,d5]@3",
  AA: "c4 g4@2 g4@2 g4@2 g4, c5", AB: "~ d6 g5 d5@2 g5 d5 g4", AC: "[c4,c5]", AD: "[d4,d5]@3 [e4,e5]@5",
  AE: "[a4,f5] [a#4,g5]", AF: "[g4,e5]", AG: "[c5,e5]", AH: "[f5,c6] [g5,a#5]", AI: "~ [g5,c6]@15, c5",
  AJ: "[c4,c5]@4 c4 ~@3", // C
})).s("gm_piano").gain(0.3)

// chords · piano
const piano_2 = note(`<
  A@6 B@2 C D A E F G H I J K L@4 M@2 N O L P Q R S T U V W@2 L@2 X@2 Y@2 Z AA X AB AC AD AE AF AG AH AI AJ@13 AK
>`.pickRestart({
  A: "~ e5@2 e5@2 e5@2 e5, a4", B: "~ f#5@2 f#5@2 f#5@2 f#5, a4", C: "~ f#5@2 f#5@2 f#5@2 f#5, b4",
  D: "~ e5@2 e5@2 e5@2 e5, g#4", E: "~ e5@2 e5 ~@3 e5, a4@2 a4 g#4, ~@5 e5@2 ~", F: "~ c#5@2 c#5@2 c#5@2 c#5, f#4",
  G: "~ c#5@2 c#5 ~@3 c#5, f#4@2 f#4 e4, ~@5 c#5@2 ~", H: "~ a4@2 a4@2 a4@2 a4, d4",
  I: "~ a4@2 a4 ~@3 a4, d4@2 d4 c#4, ~@5 a4@2 ~", J: "~ f#4@2 f#4 ~ f#4@2 f#4, b3 a3", K: "~ e4@2 e4 ~ e4@2 e4, g#3 e3",
  L: "~ e4@2 e4@2 e4@2 e4, a3", M: "~ f#4@2 f#4@2 f#4@2 f#4, a3", N: "~ f#4@2 f#4@2 f#4@2 f#4, b3",
  O: "~ e4@2 e4@2 e4@2 e4, g#3", P: "~ e4@2 e4 ~@3 e4, a3@2 a3 g#3, ~@5 e4@2 ~", Q: "~ c#4@2 c#4@2 c#4@2 c#4, f#3",
  R: "~ c#4@2 c#4 ~@3 c#4, f#3@2 f#3 e3, ~@5 c#4@2 ~", S: "~ a3@2 a3@2 a3@2 a3, d3",
  T: "~ a3@2 a3 ~@3 a3, d3@2 d3 c#3, ~@5 a3@2 ~", U: "~ f#3@2 f#3 ~ f#3@2 f#3, b2 a2", V: "~ e3@2 e3 ~ e3@2 e3, g#2 e2",
  W: "~ e3@2 e3@2 e3@2 e3, a2", X: "~ g3 e4 g3 e4 g3 e4 g3, c3",
  Y: "[~ a3 f4 a3 e4 a3 e4 a3 d4 a3 d4 a3 c4 a3 c4 a3, c3]/2", Z: "~ a3 f4 a3 f4 a3 f4 a3, d3",
  AA: "~ d4 g4 d4 a#4 d4 g4 d4, g3", AB: "~ g3 e4 g3 ~@3 g3, c3@2 c3 a#2, ~@5 g3@2 ~", AC: "~ e3 c4 e3 e4 e3 c4 e3, a2",
  AD: "~ e3 c4 e3 ~@3 e3, a2@2 a2 g2, ~@5 e3@2 ~", AE: "~ c3 a3 c3 g3 c3 a3 c3, f2",
  AF: "~ c3 a3 c3 ~@3 c4, f2@2 f3 e3, ~@5 c4@2 ~", AG: "~ a3 f4 e4 f4@4, d3", AH: "~ d3 a#3@6, g2", AI: "c3",
  AJ: "~ g4@2 g4@2 g4@2 g4, c4", AK: "c4@4 [c2,c3] ~@3",
})).s("gm_piano").gain(0.3)

stack(piano, piano_2)

More by Joshua667746