Strudelify

alice theme

Danny Elfman

KeyG minorTempo180 bpm
0:00/0:00
// alice theme — Danny Elfman
// 180 bpm, 6/8, key G minor. 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 (6/8 at bar 1, 4/4 at bar 61, 6/8 at bar 75, 4/4 at bar 149) are rendered on a constant 6/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/1761181; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 170 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/3)

// 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 · clarinet · "Clarinet in Bb"
const clarinet = note(`<
  A@16 B@8 ~@4 C@8 D@8 E@5 ~ F G@2 ~@3 H@7 I@6 J@6 K ~@3 L@2 M N O P@2 Q R@2 S@2 T U V W X Y Z AA Z AA V W X Y Z AA Z AA
  AB ~@3 AC AD AE@2 AF AG AH AI AJ AK AJ AL AM@2 AN AO AJ AK AJ AL AP@2 AQ AR AS AT AR AI AU ~@3 AV@2 S AW AX@3 AY@2
  AZ@7 BA@5 BB@4
>`.pickRestart({
  A: "[~@5 d4@8 d4@8 eb4@8 eb4@8 e4@8 e4@8 e4@8 e4@3]/8", B: "[~@5 d4@16 eb4@16 e4@16 gb4@11]/8",
  C: "[~@10 g3@8 g3@8 g3@8 g3@8 g3@8 g3@8 g3@16 bb4@2 g4@3 bb4@3 g4@2 bb4@3 g4@3 bb4@2 g4@3 bb4@3 ~@8 bb4@2 g4@3 bb4@3 g4@2 bb4@3 g4@3 bb4@2 g4@3 bb4]/8",
  D: "[~@10 g3@8 g3@8 g3@8 bb3@8 c4@8 c4@8 bb3@16 bb4@2 g4@3 bb4@3 g4@2 bb4@3 g4@3 bb4@2 g4@3 bb4@3 ~@8 bb4@2 g4@3 bb4@3 g4@2 bb4@3 g4@3 bb4@2 g4@3 bb4]/8",
  E: "[~@10 bb3@8 bb3@8 bb3@8 bb3@8 bb3@8 bb3@8 g3@16 g3@2 e3@3 ~]/5", F: "~@10 g3@2 g3@3 ~",
  G: "[~@10 g4@16 g4@2 d4@3 ~]/2", H: "[~@10 eb4@32 e4@16 c4@2 c4@3 c4@3 e4@2 e4@3 e4@3 d4@38]/7",
  I: "[d4@38 d4@38 ~ d4@10 ~@4 d4@5]/6", J: "[d4@10 d4@9 e4@19 e4@19 ~ d4@19 d4@9 d4@10]/6", K: "d5@3 bb4@3 ~@10",
  L: "eb5/2", M: "eb5@8 e5@3 e5@2 e5@3", N: "e5@3 e5@2 e5@3 e5@3 e5@2 e5@3", O: "g5@3 d5@3 ~@2 bb3@3 g3@2 bb3@3",
  P: "bb3@3 g3@2 bb3@3 bb3@3 g3@2 bb3@3", Q: "bb3 g4", R: "g5/2", S: "g5", T: "a5", U: "d5", V: "a4@3 ~@5 a4@3 ~@5",
  W: "g4@3 ~@5 f4@3 ~@5", X: "g4@3 ~@5 e4@3 ~@5", Y: "f4", Z: "f5@2 e5 f5", AA: "g5@4 a5@4 g5@3 ~@5",
  AB: "c5@3 g4@3 ~@10", AC: "c5", AD: "eb5", AE: "[f5@3 f4]/2", AF: "db4!2", AG: "eb4 f4", AH: "g4!2", AI: "bb4",
  AJ: "f5@3 db5@2 f5@3 db5@3 f5@2 db5@3", AK: "f5@3 db5@2 f5@3 ~@8", AL: "f5@3 db5@2 f5@3 db5@8", AM: "bb4!2",
  AN: "eb5@11 ~@2 eb5@3", AO: "db5", AP: "ab4!2", AQ: "gb4!2", AR: "gb4", AS: "g4", AT: "eb4", AU: "bb4@3 f4@3 ~@10",
  AV: "gb5/2", AW: "g5@3 g5@2 g5@3 g5@3 g5@2 g5@3", AX: "[db4@41 ~@7]/3", AY: "[f4@7 db5@14 bb4@11]/2",
  AZ: "[~@2 bb4@27 ~ bb4@55 f4@27]/7", BA: "[bb4@27 eb5@27 ~ f5@25]/5", BB: "[~@2 f5@55 ~@7]/4",
})).s("gm_clarinet").gain(0.18).pan(0.6)

// other · clarinet · "Clarinet in Bb"
const clarinet_2 = note(`<
  A@8 B@8 C D@3 E F G H@8 I@8 J@8 K@4 L@2 M@7 N@3 O@6 P@6 Q ~@3 R@2 S T U V@2 W X@2 Y Z AA AB AC AD AE AF AG AH AG AH AC
  AD AE AF AG AH AG AH AI AJ@2 AK AL Z AM@2 AN@2 AO AP AQ AR AQ AR AS AT AU AL AV AW AV AX AY@2 AN AZ BA AZ BB BA BC
  BD@2 BC BE@2 Y BF BG@5 BH@7 BI@5 BJ@4
>`.pickRestart({
  A: "[~@5 bb3@8 bb3@8 bb3@8 bb3@8 c4@8 c4@8 c4@8 c4@3]/8", B: "[~@5 g3@8 bb3@8 bb3@8 bb3@8 c4@8 c4@8 c4@8 c4@3]/8",
  C: "~@10 bb3@3 ~@3", D: "~@2 bb3@3 ~@5 bb3@3 ~@3", E: "~@2 bb3@3 ~@5 c4@3 ~@3", F: "~@2 c4@3 ~@5 c4@3 ~@3",
  G: "~@2 c4@3 ~@5 d4@3 ~@3",
  H: "[~@2 d4@3 ~@5 d4@16 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@6]/8",
  I: "[~ d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 g3@3]/8",
  J: "[~@2 g3@8 f3@16 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@2 d3@3 d3@3 d3@8 d3@8 f3@8 f3@8 eb3@6]/8",
  K: "[~@2 eb3@8 eb3@8 eb3@8 e3@8 e3@8 e3@8 e3@8 eb3@2 eb3@3 ~]/4", L: "[~@10 c4@16 d4@2 bb3@3 ~]/2",
  M: "[~@2 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 d3@8 bb3@32 c4@16 g3@2 g3@3 g3]/7", N: "[~@2 c4@2 c4@3 c4@3 g3@38]/3",
  O: "[g3@38 g3@38 ~ bb3@10 ~@4 bb3@5]/6", P: "[bb3@10 bb3@9 bb3@19 d4@19 ~ bb3@9 g3@5 c4@5 bb3@9 bb3@10]/6",
  Q: "bb4@3 g4@3 ~@10", R: "bb4/2", S: "c5@8 c5@3 c5@2 c5@3", T: "c5@3 c5@2 c5@3 c5@3 c5@2 c5@3",
  U: "d5@3 bb4@3 ~@2 g3@8", V: "g3!2", W: "g3 d4", X: "c5/2", Y: "eb5", Z: "c5", AA: "f5", AB: "a4",
  AC: "f4@3 ~@5 f4@3 ~@5", AD: "e4@3 ~@5 d4@3 ~@5", AE: "d4@3 ~@5 d4@3 ~@5", AF: "d4", AG: "a4@2 g4 a4",
  AH: "b4@4 c5@4 b4@3 ~@5", AI: "g4@3 c4@2 eb4@3 c4@3 eb4@2 c4@3", AJ: "eb4@3 c4@2 eb4@3 c4@3 eb4@2 c4@3",
  AK: "eb4@3 c4@2 eb4@3 c4@8", AL: "ab4", AM: "[c5@3 db4]/2", AN: "bb3!2", AO: "eb4!2", AP: "f4", AQ: "f3!2",
  AR: "f3@8 bb3@3 bb3@2 bb3@3", AS: "db4!2", AT: "eb4 db4", AU: "bb4@11 ~@2 bb4@3",
  AV: "db5@3 bb4@2 db5@3 bb4@3 db5@2 bb4@3", AW: "db5@3 bb4@2 db5@3 ~@8", AX: "db5@3 bb4@2 db5@3 ab4@8", AY: "f4!2",
  AZ: "bb3", BA: "eb4", BB: "db4", BC: "db4@3 bb3@2 db4@3 db4@3 bb3@2 db4@3", BD: "db4@3 bb3@2 db4@3 bb3@3 db4@2 bb3@3",
  BE: "db5/2", BF: "f5@3 f5@2 f5@3 f5@3 f5@2 f5@3", BG: "[bb3@11 f4@5]/5", BH: "[~@2 gb4@27 ~ g4@55 db4@27]/7",
  BI: "[gb4@27 bb4@27 ~ c5@25]/5", BJ: "[~@2 d5@55 ~@7]/4",
})).s("gm_clarinet").gain(0.15)

// bass · clarinet · "Bass Clarinet in Bb"
const bass = note(`<
  A@16 B C@5 D E@8 F@7 G@8 H@8 I@8 J K@3 L@3 M@5 N O@4 P@2 Q R S T@2 U V@2 W V X Y Z AA AB AC AD@3 AE Z AA AB AC AD@4 AF
  AG@3 AH AI AJ AK AL@2 AM AN AO AP AO AP AQ@2 AR AS AO AT AO AT AU@2 AV@2 AW@2 AX AY AZ BA@3 AV@2 BB BC BD@6 BE@3 BF@3
  BG@3 BH@6
>`.pickRestart({
  A: "[~@5 g3@8 g3@8 g3@8 g3@8 g3@8 g3@8 g3@8 g3@3]/8", B: "~@10 g3@3 ~@3", C: "~@2 g3@3 ~@5 g3@3 ~@3",
  D: "~@2 g3@3 ~@5 a3@3 ~@3",
  E: "[~@2 a3@3 ~@5 a3@16 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3]/8",
  F: "[~@2 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@8 g2@2 g2@3 g2@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@8 g2@2 g2@3 g2@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3]/7",
  G: "[~@2 bb3@2 g3@3 d3@3 c3@16 bb2@16 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@8 g2@2 g2@3 g2@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@8 g2@2 g2@3 g2@3 bb2@2 f3@3 bb3@3 d4@2 bb3@3 f3@3 bb2@2 f3@3 bb3]/8",
  H: "[~@2 d4@2 bb3@3 f3@3 eb2@2 bb2@3 eb3@3 g3@2 eb3@3 bb2@3 eb2@2 bb2@3 eb3@3 g3@2 eb3@3 bb2@3 c3@2 e3@3 g3@3 bb3@2 g3@3 e3@3 c3@2 e3@3 g3@3 bb3@2 g3@3 e3@3 bb2@2 eb3@3 g3@3 bb3@2 g3@3 eb3@3 e3@16 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3]/8",
  I: "[~@2 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 g2@2 d3@3 g3@3 bb3@2 g3@3 d3@3 eb2@2 bb2@3 eb3@3 g3@2 eb3@3 bb2@3 eb2@2 bb2@3 eb3@3 g3@2 eb3@3 bb2@3 c3@2 g2@3 c3@3 e3@2 c3@3 g2@3 c3@2 c3@3 c3@3 c3@2 c3@3 c3@3 g2@4 d3@5 bb3@5 d3@5 g2@3]/8",
  J: "~@2 d3@4 bb3@5 d3@5", K: "[g2@5 d3@5 bb3@4 d3@5 g2@5 d3@10 d2@4 g2@5 d3@5]/3",
  L: "[bb3@5 d3@5 g2@4 d3@5 bb3@5 d3@5 bb2@5 f3@9 f2@5]/3",
  M: "[bb2@5 f3@9 f2@5 c3@5 g3@10 g2@4 c3@5 g3@10 g2@5 eb2@4 eb3@10 bb2@5 eb3@3]/5",
  N: "eb3@3 eb3@3 eb3@3 ~ eb3@3 eb3@3", O: "g2@3 d3@2 g3@3 bb3@3 g3@2 d3@3", P: "eb2@3 bb2@2 eb3@3 g3@3 eb3@2 bb2@3",
  Q: "c3@3 g3@2 c4@3 e3@3 c3@2 g2@3", R: "c3@3 c3@2 c3@3 c3@3 c3@2 c3@3", S: "g2@5 ~@3 d3@8", T: "d3!2", U: "d3 g3",
  V: "e2@3 c3@2 g3@3 g3@3 c3@2 e2@3", W: "eb2@3 c3@2 g3@3 g3@3 c3@2 eb2@3", X: "d2@3 a2@2 d3@3 f3@3 d3@2 a2@3",
  Y: "d2@3 a2@2 d3@3 d3@8", Z: "a3", AA: "g3 f3", AB: "g3 e3", AC: "f3", AD: "d2@3 ~@5 d3@3 ~@5", AE: "d2@3 ~@5 d3@8",
  AF: "g3@3 ~@5 g3@8", AG: "g3!2", AH: "ab2@3 eb3@2 ab3@3 c4@3 ab3@2 eb3@3", AI: "ab2@3 ab3@2 ab3@3 ab3@8",
  AJ: "f2@3 c3@2 f3@3 a3@3 f3@2 c3@3", AK: "f3 db3", AL: "bb2 f3", AM: "bb3", AN: "bb2",
  AO: "bb2@3 f3@2 bb3@3 db4@3 bb3@2 f3@3", AP: "bb2@8 f3@3 f3@2 f3@3", AQ: "f2@3 bb2@2 db3@3 f3@3 db3@2 bb2@3",
  AR: "eb3@11 ~@2 eb3@3", AS: "db3", AT: "bb2@8 bb3@3 bb3@2 bb3@3", AU: "db2@3 ab2@2 db3@3 f3@3 db3@2 ab2@3",
  AV: "gb2@3 db3@2 gb3@3 bb3@3 gb3@2 db3@3", AW: "eb2@3 g2@2 bb2@3 db3@3 bb2@2 g2@3",
  AX: "db2@3 gb2@2 bb2@3 db3@3 bb2@2 gb2@3", AY: "g3", AZ: "bb3@3 f3@3 ~@2 bb2@8", BA: "bb2!2",
  BB: "eb2@3 g2@2 bb2@3 eb3@3 bb2@2 g2@3", BC: "eb3@3 eb3@2 eb3@3 eb3@3 eb3@2 eb3@3",
  BD: "[f3@55 bb2@7 f3@7 db4@6 f3@7 db3@7 gb3@7]/6", BE: "[db4@7 gb3@7 bb2@7 g3@6 eb4@7 g3@7 db3@7]/3",
  BF: "[g3@7 db4@7 g3@7 bb2@6 f3@7 db4@7 f3@7]/3", BG: "[db3@7 gb3@7 db4@7 gb3@6 bb2@7 g3@7 eb4@7]/3",
  BH: "[g3@7 bb2@7 f3@7 c4@6 f3@7 bb3@55 ~@7]/6",
})).s("gm_electric_bass_finger").gain(0.25)

stack(clarinet, clarinet_2, bass)

More by Danny Elfman