Strudelify

The Lion King Medley

Tim Hudson

KeyB♭ majorTempo90 bpm
0:00/0:00
// The Lion King Medley — Tim Hudson
// 90 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (1/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/2440166; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 94 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(90/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 · string ensemble 1 · "Violins 2"
const string_ensemble_1 = note(`<
  ~@5 A B@8 C@2 D@4 E@2 F G@2 H@2 I J K@4 L ~@8 M@3 N O@3 ~@3 P Q@2 R S T U V@3 W X Y Z U V@4 AA@2 AB AC AD@5 AE AF AG
  AH AI AJ AK AL AM AN@2 AO@3
>`.pickRestart({
  A: "~@6 a3@5 bb3@5",
  B: "[a3@10 bb3@15 f4@5 f4@10 eb4@10 d4@10 c4@10 eb4@10 d4@10 bb3@15 d4@5 c4@40 d4@2 ~ f4@2 bb4@2 ~@2 bb4@2 ~ bb4@2 g4@4 eb4@3 f4@4 ~@3 d4@2 ~@2 f4@2 bb4@2 ~ bb4@2 ~@2 bb4@2 c5@3 a4@4 f4@4 ~@3 d4@2 ~@2 f4@2 bb4@2 ~ bb4@2 ~@2 bb4@2 g4@3 eb4@4 f4@4 ~@3 d4@2 ~@3 bb4@2 ~@2 bb4@2 bb4@2 ~ bb4@4 ~@2, ~@120 f4 ~@7]/8",
  C: "[~@5 f4@4 f4@2 f4@3 g4@5 ~ bb4@2 ~ d5@2 c5@4 bb4@5 f4@2 ~@3 bb4@4 bb4@5 c5@2 ~@2 bb4@11 ~, ~@19 g4 ~@12]/2",
  D: "[~@2 g4@2 g4@4 bb4@5 bb4@2 ~@2 db5@2 c5@3 bb4@5 ~ bb4@2 ~ db5@2 ~@2 db5@2 ~ c5@2 g4@4 bb4@12 f4@2 ~@2 f4@2 f4@3 g4@5 ~ bb4@2 ~ d5@2 c5@4 bb4@5 f4@2 ~@2 g4@2 bb4@3 bb4@5 ~ c5@2 ~ bb4@11 ~@2 bb4@2 g4 g4@4 bb4@5, ~ bb4@2 ~@125]/4",
  E: "[bb4@2 ~@2 db5@2 c5@3 bb4@5 ~ bb4@2 ~ db5@2 ~@2 db5@2 ~@3 c5@4 bb4@13 ~@20, ~@13 db5 ~@18]/2",
  F: "~@12 f4@5 a4@5 ~ c5@3 f5@2 ~@4",
  G: "[~@9 bb4@14 c5@14 ~ d4@2 ~ f4@2 bb4@2 ~@2 bb4@2 ~ bb4@2 g4@4 eb4@3 f4@4 ~]/2", H: "[~@17 c5@45 ~@2]/2",
  I: "~@10 d4@2 ~@2 f4@2 bb4@2 ~ bb4@2 ~@2 bb4@2 g4@3 eb4@4",
  J: "f4@4 ~@3 d4@2 ~@2 f4@2 bb4@2 ~ bb4@2 bb4@2 ~@2 bb4@2 ~@8",
  K: "[~@4 eb5@18 f5@18 eb5@36 ab4@13 ~ bb4@4 g4@18 bb3@9 eb4@7]/4", L: "~@2 ab4@9 g4@9 ~@12",
  M: "[~@20 f5@18 e5@18 d5@18 c5@9 bb4@4 ~ a4@8]/3", N: "~ g4@4 f4@4 ~@23",
  O: "[~@9 c4@4 ~ e4@4 g4@9 c5@9 d5@18 c5@18 ~@24]/3", P: "~@15 d4@4 ~ f4@4 bb4@8", Q: "[~ a4@9 g4@9 f4@9 f4@36]/2",
  R: "a4@14 f4!2", S: "f4 bb4@5 a4@2", T: "bb4@3 a4 g4@2 f4@2", U: "g4", V: "~@2 f5!2 f5@2 f5 f5@2 f5!3 f5@2 f5@2",
  W: "~@2 f5!2 f5@2 f5 f5@2 f5!3 f5@2 e4@2", X: "f4!3 f4@3 d4 e4", Y: "f4 g4!2 g4@3 d4 f4",
  Z: "g4@4 ~@2 g4 a4 bb4@4 a4@2 f4@2", AA: "~@2 d5!2 d5@2 d5 d5@2 d5!3 d5@2 d5@2",
  AB: "~@2 eb5!2 eb5@2 eb5 eb5@2 eb5!3 eb5@2 eb5@2", AC: "~@2 c4!2 c5@2 a4 g4",
  AD: "[a4@10 a4!2 bb4 c5@2 c5@3 bb4@8 bb4!2 c5@2 a4 g4@2 f4@3 ~@4]/5", AE: "~@2 c4 f4 bb4@2 a4@2", AF: "g4@6 a4 c5",
  AG: "c5", AH: "~@2 c4@2 f4@2 a4 c5", AI: "d5", AJ: "d5@3 d5 bb4@2 g4 d4", AK: "db4@3 db5", AL: "c5@3 a4@2 g4 f4@2",
  AM: "~@4 c4@2 c4@2 bb4@3 a4@3 g4@2", AN: "[db4@48 db4@5 db4@5 ~ db4@5]/2", AO: "[~@3 c5@4 a4@4 ~]/3",
})).s("gm_string_ensemble_1").gain(0.38)

// other · viola
const viola = note(`<
  ~ A@4 B@3 C@3 D E F G H I@2 J K L M ~ N@2 O@2 P Q R@4 S@4 T@5 U@4 V W@5 X Y@2 Z AA AB AC AD@2 AE@2 AF AG@2 AH AD@2
  AE@2 AF AG@2 AI AJ Z AK AA AK AB AL AM AN@4 AO AP AQ AR AS@3
>`.pickRestart({
  A: "[~@15 f3@5 bb3@5 c4@5 bb3@40 bb3@20 ~@5 f3@5 bb3@5 f4@5 eb4@10 d4@8]/4",
  B: "[~@2 c4@10 g3@5 a3@5 bb3@15 bb3@5 f4@10 bb3@5 a3@5 bb3@15 bb3@5 g4@10 bb3@4]/3",
  C: "[~ a3@5 bb3@15 a3@5 g3@20 f3@40 d3@2 ~@3 d3@2 ~@3]/3", D: "d3@2 ~@6 eb3@3 d3@2 ~@5 d3@2 ~@4 d3@2 ~@3 d3@2 ~",
  E: "~@4 f3@4 c3@2 ~@5 d3@2 ~@4 d3@2 ~@3 d3@2 ~@4", F: "~ eb3@4 d3@2 ~@5 d3@2 ~@3 d3@2 ~@4 eb3@2 ~ d3@4 ~@2",
  G: "~@9 d4@2 ~@3 d4@2 ~@4 d4@2 ~@5 eb4@3 d4@2", H: "~@6 d4@2 ~@3 d4@2 ~@3 d4@2 ~@6 eb4@3 d4@2 ~@3",
  I: "[~@2 d4@2 ~@4 d4@2 ~@3 d4@2 ~@5 eb4@4 d4@2 ~@5 d4@2 ~@4 d4@2 ~@3 d4@2 ~@5 eb4@4 d4@2 ~@5 d4@2 ~@2]/2",
  J: "~ d4@2 ~@4 d4@2 ~@5 eb4@4 d4@2 ~@5 d4@2 ~@3 d4@2", K: "~@4 d4@2 ~@5 eb4@3 d4@2 ~@6 d4@2 ~@3 d4@2 ~@3",
  L: "d4@2 ~@6 eb4@3 d4@2 ~@5 d4@2 ~@4 d4@2 ~@3 d4@2 ~", M: "~@2 eb4@2 d4 ~@11",
  N: "[~@9 d4@14 eb4@14 ~ d4@2 ~@3 d4@2 ~@3 d4@2 ~@6 eb4@3 d4@2 ~@3]/2", O: "[~@17 c4@45 ~@2]/2",
  P: "~@10 d3@2 ~@4 d3@2 ~@3 d3@2 ~@5 eb3@4", Q: "d3@2 ~@5 d3@2 ~@4 d3@2 ~@3 eb3@2 ~@2 d3@2 ~@8",
  R: "[~@4 eb4@18 d4@18 c4@18 bb3@18 ab3@18 g3@18 f3@9 g3@7]/4",
  S: "[~@2 ab3@9 bb3@9 c4@18 bb3@18 c4@18 bb3@18 c4@18 bb3@9 eb4@9]/4",
  T: "[ab3@18 bb3@18 c4@18 bb3@18 c4@18 bb3@18 c4@18 bb3@9 eb4@9 ab3@16]/5",
  U: "[~@2 bb3@9 bb3@9 a3@18 g3@18 a3@18 bb3@18 a3@18 bb3@9 b3@9]/4", V: "c4@27 ~@5",
  W: "[~@4 bb3@18 a3@18 c4@18 bb3@18 g3@9 a3@9 bb3@9 c4@9 c4@9 a3@4 ~ g3@13 c4@4 ~ a3@13 f3@3]/5", X: "~ d3@11 bb3@4",
  Y: "[~ a3@9 bb3@9 c4@9 c4@36]/2", Z: "a3", AA: "bb3", AB: "d4", AC: "e4@6 a3 bb3",
  AD: "[c4!3 c4@2 c4 d4 c4@2 bb3@3 ~@3 g3]/2", AE: "[bb3 bb3@2 bb3!2 d4 c4 a3@7 ~@2]/2",
  AF: "~@2 a4!2 a4@2 a4 a4@2 a4!3 a4@2 a4@2", AG: "~@2 bb4!2 bb4@2 bb4 bb4@2 bb4!3 bb4@2 bb4@2",
  AH: "~@2 a4!2 a4@2 a4 g4@2 g4!3 a3@2 bb3@2", AI: "~@2 e4!2 e4@2 e4 e4@2 e4!3 e4@2 e4@2", AJ: "a3@3 bb3",
  AK: "d4@3 eb4", AL: "c4@3 d4", AM: "c4@2 c4!2 c4@2 c4@2", AN: "[a3@10 a3!2 bb3 c4@2 c4@2 bb3@13 ~@2]/4", AO: "f3",
  AP: "c3", AQ: "ab3 g3 f3 eb3", AR: "db3@16 bb3@5 bb3@5 ~ bb3@5", AS: "[~@3 a3@4 a3@4 ~]/3",
})).s("gm_viola").gain(0.29)

// other · cello · "Violoncello"
const cello = note(`<
  A@8 B@3 C D E F@2 G@4 H I@2 J@2 K@2 L M ~@8 N@5 O P@3 Q@5 R@2 S@2 T U V W X Y Z AA AB AC AD AE X Y Z AA AB AC AD AF
  T@2 U AG U@2 W AH T@2 AI AJ AK AL AM AN AO@3
>`.pickRestart({
  A: "[~@11 bb2@20 eb2@20 f2@20 eb2@20 f2@20 g2@17]/8", B: "[~@6 bb2@15 a2@5 g2@20 f2@40 bb2@2 ~@3 bb2@2 ~@3]/3",
  C: "bb2@2 ~@6 bb2@3 bb2@2 ~@5 bb2@2 ~@4 bb2@2 ~@3 bb2@2 ~", D: "~@4 bb2@4 a2@2 ~@5 bb2@2 ~@4 bb2@2 ~@3 bb2@2 ~@4",
  E: "~ bb2@4 bb2@2 ~@5 bb2@2 ~@3 bb2@2 ~@4 bb2@2 ~ bb2@4 ~@2",
  F: "[~@9 bb2@11 f2@3 g2@7 f2@7 ~ bb2@10 f2@4 bb2@7 ab2@5]/2",
  G: "[~@2 eb2@11 eb2@4 c3@7 bb2@7 eb2@11 f2@4 bb2@7 bb2@7 bb2@11 f2@3 g2@7 ~ f2@7 bb2@11 f2@3 bb2@7 bb2@7 ~ eb2@10]/4",
  H: "eb2@4 c3@7 bb2@7 eb2@11 f2@3", I: "[~ bb2@7 bb2@7 c3@11 g2@4 c3@7 bb2@7 f2@5 f2@5 ~ f2@3 f2@2 ~@4]/2",
  J: "[~@9 eb2@7 eb2@7 f2@7 f2@7 ~ bb2@2 ~@3 bb2@2 ~@3 bb2@2 ~@6 bb2@3 bb2@2 ~@3]/2",
  K: "[~@2 eb2@7 ~ eb2@7 f2@11 f2@3 g2@5 ~ f2@5 g2@4 a2@5 f2@5 a2@4 f3@2 ~@2]/2",
  L: "~@10 bb2@2 ~@4 bb2@2 ~@3 bb2@2 ~@5 bb2@4", M: "bb2@2 ~@5 bb2@2 ~@4 bb2@2 ~@3 bb2@2 ~@2 bb2@2 ~@8",
  N: "[~@18 eb3@9 d3@9 ab2@18 g2@18 ab2@18 g2@18 ab2@18 g2@9 c3@9 db3@9 c3@7]/5", O: "~@2 bb2@9 c3@9 f3@12",
  P: "[~@2 f3@4 e3@13 ~ e3@4 d3@13 ~ d3@4 bb2@13 ~ bb2@4 f2@13 ~ f2@4 bb2@9 b2@9]/3",
  Q: "[c3@9 g2@9 e2@9 c3@9 f3@18 f3@18 f3@9 e3@9 d3@9 d3@4 ~ c3@4 bb2@9 a2@9 bb2@9 c3@9 f2@16]/5",
  R: "[~ e2@9 d2@9 [c2,c3]@9 bb2@4]/2", S: "[~ a2@9 g2@9 f2@9 f2@36]/2", T: "f2", U: "bb2", V: "g2", W: "c3", X: "f2!2",
  Y: "f2@3 f2 f2@2 f3@2", Z: "e3!2", AA: "f3@3 f3 f3@2 e3@2", AB: "d2@3 d2 d2@4", AC: "g2@3 g2 g3@2 f3@2",
  AD: "eb3@3 eb3 eb3@2 d3@2", AE: "c3!4", AF: "c3 c2!3", AG: "eb2", AH: "c3 bb2", AI: "d3", AJ: "db3@3 db3",
  AK: "c3@3 a2@2 g2 f2@2", AL: "c2@4 c2@2 c2@2 bb2@3 a2@3 g2@2", AM: "db3 c3 bb2 ab2", AN: "g2@16 bb2@5 bb2@5 ~ bb2@5",
  AO: "[~@3 f2@4 f2@4 ~]/3",
})).s("gm_cello").gain(0.28)

stack(string_ensemble_1, viola, cello)

More by Tim Hudson