Strudelify

the lion king -Under The Stars

Tim Hudson

KeyG majorTempo60 bpm
0:00/0:00
// the lion king -Under The Stars — Tim Hudson
// 60 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: metre changes (3/4 at bar 1, 4/4 at bar 16, 3/4 at bar 24, 4/4 at bar 25, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/2447126; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 50 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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 · flute · "Solo Flute"
const flute = note(`<
  ~@2 A@2 B C D@2 E F G H@2 I J@3 K@2 L@2 M N ~@3 O P Q R ~@3 S T U V ~ W X Y Z AA AB AC AD AE AF AG AH
>`.pickRestart({
  A: "[g5@11 ~ d5@11 ~ e5@11 ~ d5@17 ~ c5@6 b4@11 ~ g5@11 ~ b4@11 ~]/2", B: "e5@11 ~ d5@17 ~ c5@6 b4@11 ~",
  C: "b4@11 ~ c5@17 ~ d5@6 d5@11 ~", D: "[c5@11 ~ b4@11 ~ a4@57 ~@3 a5@11 ~]/2", E: "a5@11 ~ b5@17 ~ a5@6 g5@11 ~",
  F: "e5@11 ~ g5@6 b5@6 e6@17 ~ d6@6", G: "c6@11 ~ d6@23 ~ d6@11 ~", H: "[b5@23 ~ c6@11 ~ d6@23 ~ d6@11 ~ c6@23 ~]/2",
  I: "b5@11 ~ a5@23 ~ d6@11 ~", J: "[a5@23 ~ d6@11 ~ a5@23 ~ a5@11 ~ f#6@68 ~@4]/3", K: "[e6@11 ~ d6@11 ~ g6@68 ~@4]/2",
  L: "[f#6@11 ~ e6@11 ~ a6@57 ~@3 g6@11 ~]/2", M: "f#6@11 ~ e6@11 ~ d6@23 ~", N: "c#6@23 ~@25", O: "d5@23 ~ e5@23 ~",
  P: "d5@23 ~ a4@23 ~", Q: "b4@23 ~ a4@23 ~", R: "b4@23 ~ d5@23 ~", S: "d6@23 ~ e6@23 ~", T: "d6@23 ~ a5@23 ~",
  U: "b5@23 ~ a5@23 ~", V: "b5@23 ~ d6@23 ~", W: "~@15 d5@3 f#5@3 a5@3 c6@17 ~ d6@3 c6@3", X: "b5@11 ~ g5@11 ~ a5@23 ~",
  Y: "g5@21 ~@23 f5@3 ~",
  Z: "c5@3 ~ d5@3 c5@3 ~ a#4@2 a4@3 ~@2 f5@3 ~ c5@3 ~ d5@3 ~ c5@3 a#4@2 a4@3 ~ f4@2 f5@3 c5@3 ~, ~@17 f4@2 ~@29",
  AA: "d5@3 ~ c5@3 a#4@2 a4@3 ~ f4@2 c5@3 c5@2 a#4@3 ~ a4@2 g4@11 f5@3 ~ c5@3 d5@3 ~",
  AB: "c5@3 ~ a#4@2 a4@3 f4@2 f5@3 ~ c5@3 d5@3 ~ c5@3 ~ a#4@2 a4@3 f4@2 f5@3 ~ c5@3 ~ d5@3 c5@3 ~",
  AC: "a#4@2 a4@3 ~@2 c5@3 ~ c5@2 a#4@3 ~@2 g4@11 ~@4 d5@2 d5@3 ~ d5@2 c5@3 d5@3 ~, ~@6 f4@2 ~@9 a4@2 ~@29",
  AD: "a#4@3 ~@4 d5@2 d5@3 ~ d5@2 f5@3 e5@3 ~ c5@3 ~ f5@3 ~@2 d5@3 ~ c5@2 f5@3 ~@2 d5@3 ~ c5@2, ~@30 e5@2 ~@9 e5@2 ~@5",
  AE: "~@2 a4@2 c5@2 f5@3 e5@2 d5@3 ~ f5@3 a#4@3 ~@3 e4@2 g4@2 c5@3 a#4@2 a4@3 ~ c5@3 ~ f4@3 ~@2 a4@2",
  AF: "c5@2 f5@3 ~@2 d5@3 ~ f5@3 ~ a#4@3 c5@3 ~ c5@2 a#4@3 ~ a#4@2 a4@11 ~ a4@2 c5@2 f5@2, ~@3 e5 ~@20",
  AG: "~@2 e5@2 d5@3 f5@3 ~ a#4@3 ~@4 g4@2 c5@3 ~ a#4@2 a4@3 ~ c5@3 f4@3 ~@3 a4@2 ~ f5@3 ~ e5@2, ~@17 e4@2 ~@22 c5@2 ~@5",
  AH: "d5@3 ~ f5@3 a#4@3 ~ c5@3 ~ c5@2 a#4@3 g4@2 f4@5 ~ f4@3 ~@17",
})).s("gm_flute").gain(0.25)

// other · violin
const violin = note("<~@30 A@3 ~@4 B C D E F G H I J K L@2 M>".pickRestart({
  A: "[~@5 d5@2 d5@4 d5@4 ~ d5@2 e5@4 ~ d5@4 d5@4 ~ c#5@4 ~@7 d5@4 d5@4 ~ d5@2 c#5@4 ~ b4@4 a4@9 ~@7 d5@4 d5@4 ~ d5@2 c#5@4 ~ b4@4 a4@45]/3",
  B: "~@2 a4 a4@2 a4@2 a4 b4@2 g4@2 a4@4", C: "~@5 d4 f#4 a4 c5@6 d5 c5", D: "b4 g4 a4@2", E: "g4@11 f4@2 ~@9 f5@2",
  F: "c5@4 d5@3 c5@4 a#4@2 a4@4 ~ f5@4 c5@4 d5@4 c5@3 a#4@2 a4@4 ~@2 f5@3 c5@4",
  G: "d5@4 c5@3 a#4@2 a4@4 ~@2 c5@3 c5@2 a#4@4 a4@2 g4@11 f5@4 c5@3 d5@4",
  H: "c5@4 a#4@2 a4@4 ~ f5@4 c5@3 d5@4 c5@4 a#4@2 a4@4 ~ f5@4 c5@4 d5@3 c5@4",
  I: "a#4@2 a4@4 ~ c5@4 c5@2 a#4@4 ~ g4@11 ~@4 d5@2 d5@4 d5@2 c5@3 d5@4, ~@17 a4@2 ~@29",
  J: "a#4@4 ~@3 d5@2 d5@4 d5@2 f5@3 e5@4 c5@4 f5@4 ~ d5@4 c5@2 f5@4 ~ d5@4 c5@2, ~@30 e5@2 ~@9 e5@2 ~@5",
  K: "~@4 f5@2 f5@3 e5@2 d5@4 f5@3 a#4@4 ~@4 c5@2 c5@3 a#4@2 a4@4 c5@4 f4@4 ~@3",
  L: "[f5@2 f5@4 ~ d5@4 f5@4 a#4@3 a4@4 a4@2 g4@4 g4@2 f5@3 f5@2 f5@4 g5@2 a5@2 ~ f5@2 f5@4 e5@2 d5@3 f5@4 a#4@4 ~@3 c5@2 c5@4 a#4@2 a4@4 c5@3 f4@4 ~@4 f5 f5@4 e5@2, ~@3 e5 ~@44]/2",
  M: "d5@4 f5@3 a#4@4 a4@4 a4@2 g4@3 g4@2 f5@6 f5@4 ~@16",
})).s("gm_violin").gain(0.4)

// other · violin · soft notes
const violin_soft = note("<A@4 B C D@2 E F G H@2 I J@2 K L M N O P Q R S@2 T@4 ~@3 U@4 ~@13>".pickRestart({
  A: "[~@4 g4@14 d4@2 e4@2 d4@3 c4 b3@2 g4@2 b3@2]/4", B: "c4@2 d4@3 c4 b3@2", C: "b3 c4 d4!2", D: "[c4 b3 a3@5 ~]/2",
  E: "a4@2 b4@3 a4 g4@2", F: "e4@2 g4 b4 e5@3 d5", G: "c5 d5@2 ~", H: "[b4@2 c5 d5@2 d5 c5@2]/2", I: "b4 a4@2 d5",
  J: "[a4@2 d5 a4@2 a4 f#5@2]/2", K: "f#5!2 f#5@2", L: "e5 d5 g5@2", M: "g5!2 g5@2", N: "f#5 e5 a5@2", O: "a5!3 g5",
  P: "f#5 e5 d5@2", Q: "c#5 ~", R: "~ b3", S: "[c#4 d4@4 b3@2 c#4]/2", T: "d6/4", U: "d5/4",
})).s("gm_violin").gain(0.15)

// other · viola
const viola = note("<~@30 A@2 B ~@4 C D E F G H I J K L M@2 N>".pickRestart({
  A: "[a3@6 a3@6 b3@6 c#4@3 d4@3 b3@6 c#4@2]/2", B: "~ d4@15", C: "a3!2", D: "f#3 g3", E: "b3@2 a3 f#3",
  F: "d3@11 f3@2 ~@9 f4@2", G: "c4@4 c4@3 c4@4 c4@2 c4@4 ~ f4@4 c4@4 c4@4 c4@3 c4@2 c4@4 ~@2 f4@3 c4@4",
  H: "c4@4 c4@3 c4@2 c4@4 ~@2 a3@3 a3@2 a#3@4 c4@2 g3@11 f4@4 c4@3 c4@4",
  I: "c4@4 c4@2 c4@4 ~ f4@4 c4@3 c4@4 c4@4 c4@2 c4@4 ~ f4@4 c4@4 c4@3 c4@4",
  J: "c4@2 c4@4 ~ a3@4 a3@2 a#3@4 ~ g3@11 ~@4 a#3@2 a#3@4 a#3@2 a#3@3 a#3@4, ~@17 c4@2 ~@29",
  K: "a#3@4 ~@3 a#3@2 a#3@4 a#3@2 a#3@3 a#3@4 a#3@4 ~@4 a#3 a#3@4 a#3@2 c4@4 c4@3 c3@4",
  L: "~@4 f3@2 f3@3 f3@2 f3@4 f3@3 f3@4 ~@4 f3@2 f3@3 f3@2 f3@4 f3@4 f3@4 ~@3",
  M: "[f3@2 f3@4 f3 f3@4 f3@4 f3@4 ~@3 f3@2 f3@4 f3@2 f3@3 f3@4 f3@4 ~@3 f3@2 f3@4 f3@2 f3@3 f3@4 f3@4 ~@3 f3@2 f3@4 f3@2 f3@4 f3@3 f3@4 ~@4 f3 f3@4 f3@2]/2",
  N: "f3@4 f3@3 f3@4 ~@4 f3@2 f3@3 f3@2 f3@6 f3@4 ~@16",
})).s("gm_viola").gain(0.33)

// other · viola · soft notes
const viola_soft = note("<A@4 B C@3 D E F G@2 H I@2 J@2 K@2 L M N@2 O@2 P@2 Q@2 ~@3 P@2 Q@2 ~@13>".pickRestart({
  A: "[~@2 b3@9 b3@3 b3@2]/4", B: "c4 b3@3", C: "[g3!2 g3 f#3]/3", D: "e3@6 e3 d3", E: "e3 f#3 g3 b3 c4 b3 a3 g3",
  F: "a3 c4 b3 a3 g3 f#3 g3 e3", G: "[g3@4 a3@2 b3@3 b3 a3@2 g3@3 g3]/2", H: "g3 f#3@2 g3",
  I: "[f#3@2 g3 f#3@2 a3 ~ d4]/2", J: "[d4!2 d4@4 e4!2]/2", K: "[e4!2 e4@4 f#4!2]/2", L: "f#4!3 d4", M: "b3 g3 f#3@2",
  N: "[e3 f#3@2 g3]/2", O: "[a3 f#3@4 g3@2 a3]/2", P: "f#3/2", Q: "g3/2",
})).s("gm_viola").gain(0.16)

// bass · cello · "Violoncello"
const bass = note("<~@30 A@2 B ~@4 C D E F G H I J K L M N O>".pickRestart({
  A: "[d2@12 g2@6 a2@3 d2@3 g2@6 a2@2]/2", B: "~ d2@15", C: "d2", D: "d2 c3", E: "b2@2 a2 f#2",
  F: "g2@4 g2@2 ~ g2@2 ~@2 g2@4 g2@2 ~ f#2@2 ~@2 f2@4 f2@2 ~@2 f2@2 ~ f2@4 f2@2 ~@2 f2@2 ~ f2@4",
  G: "f2@2 ~@2 f2@2 ~ f2@4 f2@2 ~@2 f2@2 ~ f2@4 f2@2 ~@2 f2@2 ~@2 f2@3 f2@2 ~@2 f2@2 ~@2 f2@3 f2@2 ~@2",
  H: "f2@2 ~@2 f2@3 f2@2 ~@2 f2@2 ~@2 f2@3 f2@2 ~@2 f2@2 ~@2 c3@4 c3@2 ~ c3@2 ~@2 f2@4 f2@2 ~ f2@2 ~@2",
  I: "f2@4 f2@2 ~ f2@2 ~@2 f2@4 f2@2 ~ f2@2 ~@2 f2@4 f2@2 ~@2 f2@2 ~ f2@4 f2@2 ~@2 f2@2 ~ f2@4",
  J: "f2@2 ~@2 f2@2 ~ f2@4 f2@2 ~@2 f2@2 ~ c3@4 c3@2 ~@2 c3@2 ~@2 a#2@3 a#2@2 ~@2 a#2@2 ~@2 a#2@3 a#2@2 ~@2",
  K: "a#2@2 ~@2 a#2@3 a#2@2 ~@2 a#2@2 ~@2 a#2@3 a#2@2 ~@2 a#2@2 ~@2 a#2@4 a#2@2 ~ a#2@2 ~@2 c3@4 c3@2 ~ c3@2 ~@2",
  L: "f2@4 f2@2 ~ f2@2 ~@2 f2@4 f2@2 ~ f2@2 ~@2 c2@4 c2@2 ~@2 c2@2 ~ f2@4 f2@2 ~@2 f2@2 ~ f2@4",
  M: "f2@2 ~@2 f2@2 ~ f2@4 f2@2 ~@2 f2@2 ~ c2@4 c2@2 ~@2 c2@2 ~@2 f2@3 f2@2 ~@2 f2@2 ~@2 f2@3 f2@2 ~@2",
  N: "f2@2 ~@2 f2@3 f2@2 ~@2 f2@2 ~@2 f2@3 f2@2 ~@2 f2@2 ~@2 f2@4 f2@2 ~ f2@2 ~@2 f2@4 f2@2 ~ f2@2 ~@2",
  O: "f2@4 f2@2 ~ f2@2 ~@2 c2@4 c2@2 ~ c2@2 ~@2 f2@6 f2@4 ~@16",
})).s("gm_cello").gain(0.63)

// bass · cello · "Violoncello" · soft notes
const bass_soft = note("<A@4 B C D@2 E@3 F@3 G@8 H@2 I@2 J@2 K@2 ~@3 J@2 K@2 ~@13>".pickRestart({
  A: "[~@4 g2@23 f#2 e2@4]/4", B: "c2 g2@3", C: "g2 a2 b2!2", D: "[a2 g2 d2@6]/2", E: "[c3@6 b2@6 c3@6 d3@4 g2 f#2]/3",
  F: "[e2@3 d2@3 c2@3 d2@2 e2]/3", G: "[d2@2 e2 d2@2 a2 d3@3 c#3 b2@8 a2@4 f#2@4 g2@4 a2@2]/8", H: "[a2 d2@2 g2]/2",
  I: "[a2 d2@4 g2@2 a2]/2", J: "d2/2", K: "g2/2",
})).s("gm_cello").gain(0.31)

stack(flute, violin, violin_soft, viola, viola_soft, bass, bass_soft)

More by Tim Hudson