Strudelify

Rudy - End Titles - Jerry Goldsmith (Advancement)

james horner

KeyE majorTempo95 bpm
0:00/0:00
// Rudy - End Titles - Jerry Goldsmith (Advancement) — james horner
// 94.5 bpm, 6/8, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5307921; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 92 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(94.5/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · tremolo strings · "Flauta"
const tremolo_strings = note(`<
  ~ A B C D E B F G@2 H I J K L M N@2 ~ A B C D E B F G@2 H I J K L M O@2 ~@9 A B C D E B F G@2 H I J K L M N@2 ~@14 P Q
  R ~@13
>`.pickRestart({
  A: "~@4 e5 f#5", B: "g#5 e6 d#6", C: "c#6@15 ~ b5@8", D: "g#5@11 ~ f#5@4 g#5@8", E: "e5@15 ~ e5@4 f#5@4",
  F: "c#6@15 ~ e6@8", G: "[b5@15 ~@5 c#6@2 d#6@2]/2", H: "e6 d#6 c#6", I: "b5 g#5 f#5", J: "e5@11 ~ c#5@4 e5@8",
  K: "g#5@23 ~", L: "~ f#5 e5", M: "f#5@15 ~ g#5@8", N: "[e5@23 ~]/2", O: "[e5@17 ~@7]/2", P: "~ b4 a4",
  Q: "b4@15 ~ c#5@8", R: "a4@23 ~",
})).s("gm_tremolo_strings").gain(0.25)

// other · viola
const viola = note(`<
  ~@34 A@3 B C@2 D E@3 F@2 G H I J G H D B K L M N J O D J D J P Q R S T U V W X Y Z AA AB D AC AD ~@12
>`.pickRestart({
  A: "e3/3", B: "f#3", C: "[e3@4 d#3 e3]/2", D: "g#3", E: "g#3/3", F: "b3/2", G: "g#3!3", H: "a3@2 b3", I: "g#3@2 g#3",
  J: "a3", K: "g#4 f#4 e4", L: "g#4@2 f#4", M: "a4@2 a4", N: "g#4", O: "b3", P: "[a3,c#4]@2 c#5", Q: "[a3,d5]",
  R: "[a3,c#4]", S: "[a3,d4]", T: "[a3,c#4]@4 a4 c#5", U: "[a3,d5]@4 ~ f#4", V: "[a3,c#4,a4]", W: "[b3,b4]",
  X: "c#5 b4 a4", Y: "c#5@2 b4", Z: "f#4@3 a4 f#4@2", AA: "e4", AB: "g3", AC: "[e3,c#4]", AD: "[f#3,d4] ~",
})).s("gm_viola").gain(0.25)

// other · oboe
const oboe = note("<~@35 A B C D@2 E F G@2 H@2 I J@2 K I J I L I M N M N O P@4 ~@8 Q R S I N@2 T U ~@12>".pickRestart({
  A: "~@4 c#5 d#5", B: "e5@3 c#5 e5@2", C: "f#5@3 e5 f#5@2", D: "[g#5@4 f#5 g#5]/2", E: "e5 d#5 e5", F: "d#5 c#5 d#5",
  G: "[c#5@4 g#4 f#4]/2", H: "b4/2", I: "e4", J: "e5", K: "e4 ~", L: "d#4", M: "g#4", N: "a4", O: "b4", P: "e4/4",
  Q: "c#5 b4 a4", R: "c#5@2 b4", S: "f#4@3 a4 f#4@2", T: "c#5", U: "d5 ~",
})).s("gm_oboe").gain(0.25)

// other · trombone · "Trombón"
const trombone = note("<~@64 A B C D E B D F C G ~ H I J C K L M N@2 O P Q@2 R@2 ~@2>".pickRestart({
  A: "~ e4@2", B: "d4", C: "c#4", D: "a3", E: "e4", F: "g#3", G: "~ e4", H: "~ a4", I: "~@2 g4@3 d4", J: "e4@3 g#4 ~@2",
  K: "d4@3 ~ f#4 g#4", L: "a4@3 f#4 a4@2", M: "b4@3 a4 b4@2", N: "[c#5@4 b4 c#5]/2", O: "a4 g#4 a4", P: "g#4 f#4 g#4",
  Q: "[f#4@4 c#4 b3]/2", R: "e4/2",
})).s("gm_trombone").gain(0.15)

// other · cello · "Violonchelo"
const cello = note(`<
  ~@36 A B C D E B F@2 G@2 C@7 D A C H C I J K@2 L@2 M N M N M N M O P M Q M R S T U V W X@2 Y Z AA@2 AB@2 AC@2
>`.pickRestart({
  A: "c#3", B: "b2", C: "e3", D: "d#3", E: "[g#2,c#3]", F: "[f#2,f#3]/2", G: "[b2,b3]/2", H: "[a2,a3]", I: "d3",
  J: "[b2,b3]", K: "[e2,e3]", L: "[e2,e3]/2", M: "[a2,e3,a3]", N: "[a2,d3,a3]", O: "[g#2,e3,g#3]", P: "[c#3,f#3]",
  Q: "[d2,a2,d3]", R: "[g2,d3,g3]", S: "e4@3 g#4 ~@2", T: "[a3,c#4]", U: "[a3,d4] ~", V: "~@2 [a3,a4]",
  W: "[b3,b4]@3 [a3,a4] [b3,b4]@2", X: "[[c#4,c#5]@4 [b3,b4] [c#4,c#5]]/2", Y: "[a3,a4] [g#3,g#4] [a3,a4]",
  Z: "[g#3,g#4] [f#3,f#4] [g#3,g#4]", AA: "[[f#3,f#4]@4 [c#3,c#4] [b2,b3]]/2", AB: "[e3,e4]/2", AC: "a4",
})).s("gm_cello").gain(0.25)

// other · cello · "Violonchelo" · soft notes · F# G# A F#
const cello_soft = note("<~@79 [~@4 [f#3,f#4] [g#3,g#4]] [[a3,a4]@3 [f#3,f#4] ~@2] ~@11>").s("gm_cello").gain(0.15)

// bass · contrabass · "Contrabajo"
const bass = note(`<
  ~@36 A B C D E F G@2 H@2 I@6 C D E C J C K F C@2 L@2 M K J K J K J N O P Q P R S P T ~@12
>`.pickRestart({
  A: "c#3", B: "b2", C: "e2", D: "d#2", E: "c#2", F: "b1", G: "f#2/2", H: "b1/2", I: "e2 ~@2", J: "a2", K: "d2",
  L: "e2/2", M: "a1 ~@2", N: "[g#1,g#2]", O: "[f#1,f#2]", P: "[a1,a2]", Q: "[d2,d3]", R: "g2", S: "[e2,e3]",
  T: "[a1,a2] ~", // A
})).s("gm_contrabass").gain(0.25)

// chords · piano
const piano = note(`<
  ~@18 A B A B A C A B A D E F G A H I A J K L ~@8 A B A C A B A D E F G A H I A M N ~@29
>`.pickRestart({
  A: "~ [b4,g#5] [b4,e5]", B: "~ [c#5,a5] [a4,e5]", C: "~@8 [c#5,a5]@15 ~", D: "~@8 [b4,f#5]@15 ~",
  E: "[g#4,e5] [f#4,d#5] [e4,c#5]", F: "[e4,b4]@23 ~", G: "~ [a4,e5] [c#5,g#5]", H: "~ [a4,f#5] [a4,e5]",
  I: "~ [f#4,d#5] [d#4,b4]", J: "~@8 [e4,e5]@15 ~", K: "[e5,e6]!6", L: "[d#5,d#6]@23 ~", M: "~@2 [e4,e5]",
  N: "~ [b4,g#5] [g#4,e5]", // E C#m
})).s("gm_piano").gain(0.25)

// other · timpani · "Timbal de concierto" · E
const timpani = note("<~@63 [~@5 [e2,e3]!19] [[e2,e3] ~@23] ~@27>").s("gm_timpani").gain(0.3)

// other · timpani · "Timbal de concierto" · soft notes · E
const timpani_soft = note("<~@63 [[e2,e3]!5 ~@19] ~@28>").s("gm_timpani").gain(0.2)

stack(tremolo_strings, viola, oboe, trombone, cello, cello_soft, bass, piano, timpani, timpani_soft)

More by james horner