Strudelify

this is halloween

Danny Elfman

KeyD majorTempo84 bpm
0:00/0:00
// this is halloween — Danny Elfman
// 84 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 15, 4/4 at bar 16, 2/4 at bar 22, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/6226616; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 55 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · violin · "Violín"
const violin = note(`<
  A B C D E F G ~@2 H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG ~@2 AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AW AX ~
>`.pickRestart({
  A: "~@12 b4@2 d4 ~", B: "d4@2 d4 ~ d4@2 d4 ~ d4@2 d4 ~ f#4@2 f#4 ~",
  C: "f#4@2 f#4 ~ f#4@2 f#4 ~ f#4@2 g4 ~ g4@2 g4 ~", D: "g4@2 g4 ~ g4@2 g4 ~ g4@2 g4 ~@5",
  E: "~@6 f#4 ~ f#4@2 f#4 ~ b4@2 b4 ~", F: "b4!2 g4 ~ a#4 ~ a#4 ~ a#4@4 d4 ~ d4 ~", G: "d4 ~ d4 ~ d4 ~ c#4 ~ c#4@4 ~@4",
  H: "~@12 f#4@2 f#4 ~", I: "f#4@2 c#4@2 f#4@2 f#4 ~ f#4@2 c#4@2 c4@2 e4 ~", J: "e4@2 d4 c4 b3 ~ d#4 ~ e4@4 g4@2 g4@2",
  K: "g4@2 d4@2 g4!6 d4@2 a#5@2 f#5@2", L: "f#5@2 f5 d#5 c5 g5!5 g5@2 a#4 ~@3",
  M: "f#4@4 g4 ~@3 f#4@2 a4@2 c#4@2 g#4@2", N: "g#4@2 c#4@2 a#4@4 g#4 ~ g#4 ~ g#4 ~ g#4 ~",
  O: "g#4 a#4 g4 ~ g4@4 g4 ~ g4 ~ g4 ~ g4 ~", P: "g4 a4 f4 ~ f4@4 c5@6 c6@2", Q: "a#5@3 g#5 d5 g#5 g5 f5",
  R: "a5@8 d4@2 d4 ~ d4 c#4 b3@2", S: "d4@2 d4 ~ d4 c#4 b3@2 g5@2 b4 ~ g5@2 b4 ~",
  T: "g4@2 b3 ~ e4@2 b3 ~ g5 f#5 e5 b4 e5 f#5 g5 a5", U: "d5 ~ d5 ~ d#5@3 ~ d5 ~ d5 ~ d#5@3 ~",
  V: "d5!3 ~ d5@2 c5 a#4 a4 ~ a4 ~ d5@4", W: "g4 ~ g4 ~ g4@4 g4@2 g4@2 g4 f#4 e4@2", X: "~@2 d4 ~@3 d4 ~@3 e4 ~ f4@4",
  Y: "~ b4 ~ b4 ~ b4 ~ b4", Z: "~@2 g4@2 ~@2 g4@2 ~@2 c#4 ~ d4@4", AA: "f4 ~ f4 ~ f4@4 f4 ~ f4 ~ f4@4",
  AB: "f#4@2 d4@2 f#4@2 d4@2 a#4 a4 g4@2 a#4 a4 g4@2", AC: "a#4 a4 g4 ~ a#4 a4 g4 ~ d4!2 g4!4 d5!2",
  AD: "e5 ~ e5 ~ e5 ~ e5 ~ e5 f#5 d#5 ~ c#5@4", AE: "d#5 ~ d#5 ~ d#5 ~ d#5 ~ d#5 e5 f#5 ~ e5@4",
  AF: "~@2 e4 ~@3 e4 ~@3 d#4 ~@3 d#4 ~", AG: "~@2 d#4 ~@3 d#4 ~@3 e4 ~@3 d#4 ~", AH: "e4@4 f4@4 c5!5 b4 a4 ~",
  AI: "~ d#4 ~ f4 ~ f#4 ~@2", AJ: "f4@2 f4!3 d#4 c#4 ~ f4!5 d#4 c#4 ~", AK: "f#5 ~@3 c#5 ~@3 d#5 ~ c#5 ~ c5 ~ a#4 ~",
  AL: "f4@2 f4@2 f4@2 c#4@2 f4@2 f4!3 d#4 c#4 ~", AM: "f#4!3 ~ a4 ~@3 d#4 ~ d#4 ~ f#4 ~ a#4 ~",
  AN: "d5@2 d5 ~ f5 e5 d5 ~ d5@2 d5 ~ f5 e5 d5 ~", AO: "a#4 ~ a#4 ~ g4 ~ g4 ~",
  AP: "a#4 a4 g4 d4 g4 a4 a#4 c5 d5 ~ d5 ~ d#5@4", AQ: "d5 ~ d5 ~ d#5@4 d5!3 ~ d5@2 c5 a#4",
  AR: "a4 ~ a4 ~ d5@4 ~@2 a#4!3 ~ a#4 ~", AS: "a#4 a4 g4@2 a#4 a4 g4@2 ~@2 d#5!3 ~ d#5 ~",
  AT: "d#5 d5 c5@2 d#5 d5 c5@2 ~@2 b4!3 ~ b4 ~", AU: "d5 c#5 b4@2 d5 c#5 b4@2 ~@2 d#5!2 d#5@2 g5@2",
  AV: "f#5@2 ~@2 f#5@4 a#3 ~ a#3 ~ a#3 ~ a#3 ~", AW: "a#3 c4 a3 ~ a3@3 ~ a3 ~ a3 ~ a3 ~ a3 ~",
  AX: "a3 a#3 c4 ~ a#3@3 ~@9",
})).s("gm_violin").gain(0.35)

// other · violin · "Violín" · soft notes
const violin_soft = note("<~@3 A B ~ C D E F ~@25 G H ~@17 I>".pickRestart({
  A: "~@12 f#4@2 f#4 ~", B: "f#4@2 f#4 ~ f#4@2 ~@10", C: "~@12 c#4 ~ c#4 ~",
  D: "c#4 ~ c#4 ~ c#4 ~ c#4 ~ d4@4 b3 ~ b3 ~", E: "b3 ~ b3 ~ c#4 ~ c#4 ~ a3@4 c#4 ~ c#4 ~",
  F: "c#4 ~@3 d4@3 ~ c#4@4 ~@4", G: "d#5 ~ d#5 ~ e5@4 d#5 ~ d#5 ~@3 b4 ~", H: "~@2 d4 ~@3 d4 ~@3 f4 ~@3 f#4 ~",
  I: "a#4 a4 g4@2 g4@4 ~@8",
})).s("gm_violin").gain(0.2)

// other · violin · "Violín"
const violin_2 = note(`<
  A B C D E F G H I J K L M N O P Q@3 R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX AY AZ BA
>`.pickRestart({
  A: "~@12 b3@2 b3 ~", B: "b3@2 b3 ~ b3@2 b3 ~ b3@2 b3 ~ d4@2 d4 ~", C: "d4@2 d4 ~ d4@2 d4 ~ d4@2 d4 ~ e4@2 e4 ~",
  D: "e4@2 e4 ~ e4@2 e4 ~ e4@2 e4 ~ d#4@2 d#4 ~", E: "d#4@2 d#4 ~ d#4@2 d#4 ~ d#4@2 d#4 ~ e4 ~ e4 ~",
  F: "b3 ~ e4 ~ c#4 ~ c#4 ~ c#4@4 b3 ~ b3 ~", G: "b3 ~ b3 ~ b3 ~ b3 ~ b3@4 b3 ~ b3 ~",
  H: "b3 ~ b3 ~ b3 ~ b3 ~ b3@4 b3@2 b3@2", I: "a3@2 a3@2 g3@2 g3@2 g3@4 a4 ~ a4 ~",
  J: "a4 ~@3 b4@3 ~ a#4@4 c#4@2 c#4 ~", K: "c#4 b3 a3@2 c#4@2 c#4 ~ c#4 b3 a3@2 a4@2 e4 ~",
  L: "e4@2 d4 c4 b3 ~ b3 ~ b3@4 g3 ~@3", M: "f#4 ~@3 g3 ~@3 f#4 ~@3 d#4 ~@3",
  N: "a#3 ~@3 c4 ~@3 a#3 ~ g3 ~ c#4 ~ c#4 ~", O: "c#4@4 c#4!4 c#4@4 c#4@2 ~@2", P: "e4 ~ d#4@2 f4 ~ c4 ~",
  Q: "f4 ~ c4 ~ f4 ~ c4 ~", R: "f4@2 ~@2 c4@2 ~@2 d5@2 d5 ~ d5 c#5 b4@2",
  S: "d5@2 d5 ~ d5 c#5 b4@2 a#4 a4 g4@2 a#4 a4 g4@2", T: "b4 a4 g4@2 b4 a4 g4@2 e4@2 ~@6",
  U: "g4 ~@3 d#4 ~@3 g4 ~@3 d#4 ~@3", V: "g4!3 ~ g4@2 ~@6 a#4@4", W: "e4 ~@3 c5@2 ~@2 g5@2 g5@2 g5 f#5 e5@2",
  X: "d5!6 c5 a#4 a4 ~ e5 ~ f5@4", Y: "g5 ~ g5 ~ g5 f#5 e5@2 g5!5 f#5 e5@2", Z: "g5 ~ d5 ~ d5!2 c5 a#4 a4 ~ e4 ~ f5@4",
  AA: "f4 ~ c4 ~ d4!2 a4 ~", AB: "d4 c#4 b3 ~ d4 c#4 b3 ~ a#4@2 g4@2 g4@2 d4@2",
  AC: "a#4 a4 g4 ~ a#4 a4 g4 ~ d4@2 c#4@2 a#3@2 g3@2", AD: "~@2 c#4 ~@3 c#4 ~@3 c#4 ~@3 c#4 ~",
  AE: "f#4@2 f#4 ~ f#4@2 f#4 ~ f#4@2 f#4 ~ f#4@2 f#4 ~", AF: "~@2 c#5 ~@3 c#5 ~@3 b4 ~@3 b4 ~",
  AG: "~@2 b4 ~@3 b4 ~@3 c#5 ~@3 c5 ~", AH: "b4 ~ b4 ~ b4@4 b4 ~ b4 ~ b4 a#4 g#4@2",
  AI: "~@2 b4 ~@3 b4 ~@3 b4 ~@3 c#5 ~", AJ: "e4@4 f4@4 c4!5 b3 a3 ~", AK: "~ c4 ~ c4 ~ d4 ~@2",
  AL: "a#4 ~@3 f4 ~@3 a#4 ~@3 f4 ~@3", AM: "f#5 ~@3 c#5 ~@3 d#5 ~ c#5 ~ c5 ~ a#4 ~",
  AN: "c#4@2 c#4@2 c#4@2 a#3@2 c#4@2 c#4!3 c4 a#3 ~", AO: "d4!2 ~@2 d4 ~@3 d#4 ~ a3 ~ d#4 ~ f#4 ~",
  AP: "a4@2 a4 ~ f4 e4 d4 ~ a4@2 a4 ~ f4 e4 d4 ~", AQ: "f5 ~ f5 ~ d5 ~ d5 ~",
  AR: "g5 e5 a#4 g4 g5 e5 a#4 g4 g5 ~ g5 ~ g5@4", AS: "g5 ~ g5 ~ g5@4 g5!3 ~ g5@2 ~@2", AT: "~@2 a#5@2 g3 ~ d4 ~",
  AU: "g3 ~ d4 ~ c4 ~ g3 ~", AV: "c4 ~ g3 ~ b4 ~ f#4 ~", AW: "b4@2 ~@2 f#4@2 ~@4 g4!2 g4@2 c5@2",
  AX: "a4@2 ~@2 a4@4 g4 ~ g4 ~ g4 ~ g4 ~", AY: "g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~",
  AZ: "g4 ~ g4 ~ g4 ~ g4 ~ a#4 a4 g4@2 a#4 a4 g4@2", BA: "g4 ~",
})).s("gm_violin").gain(0.25)

// other · viola
const viola = note(`<
  A B@2 C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AM AO AP AQ AR AS AT
  AU AV AW AX ~@3
>`.pickRestart({
  A: "~@6 b3 ~", B: "b3@2 ~@2 b3@2 ~@2 b3@2 f#3 ~ b3@2 ~@2", C: "b3 ~ b3 ~ b3 e4 d#4 ~",
  D: "d#4@2 ~@2 d#4@2 ~@2 d#4@2 a#3 ~ e3@2 ~@2", E: "b3@2 e3 ~ f#4@4 f#3@4 b3 ~@3",
  F: "b3 ~@3 b3 ~@3 b3 ~ f#3 ~ b3 ~@3", G: "b3 ~@3 b3 ~@3 b3 ~ f#3 ~ b3@2 ~@2", H: "b3 ~ a3 ~ a3 ~ e3!2",
  I: "e3 f#3 g3@2 b3@2 f#3@2 f#3@2 c#4@2 f#3@2 ~@2", J: "c#4@2 ~@2 f#3@2 ~@2 c#4@2 ~@2 a3@2 e4 ~",
  K: "e4@2 d4 c4 b3 ~ f#4 ~ g4@4 d4@2 d4@2", L: "d4 c4 a#3@2 d4!4 c4 a#3 a3@2 d#4 ~@3",
  M: "a#3 ~@3 c4 ~@3 a#3 ~ g3 ~ a#3 ~ a#3 ~", N: "a3@4 a#3!4 a3@4 c#3@2 ~@2", O: "e3 ~ d#3@2 ~ c4 ~ c4",
  P: "~ c4 ~ c4 ~ c4 ~ c4", Q: "~ a3 ~ a3 ~ g#3 ~ g#3", R: "~ g#3 ~ g#3 ~ g#3 ~ g#3", S: "~ a3 ~ a3 b3 ~ f#3 ~",
  T: "b3@2 ~@2 f#3@2 ~@2 g3@2 d3 ~ g3@2 d3 ~", U: "e4@2 b3 ~ e4@2 b3 ~ e3@2 ~@6", V: "g3 ~@3 d#4 ~@3 g3 ~@3 d#4 ~@3",
  W: "e4 ~@3 a#3 ~@3 d4 c#4 b3 a3 g3@4", X: "e3 ~@3 c3@2 ~@2 g3@2 g3@2 g3 f#3 e3@2", Y: "d4!6 c4 a#3 a3 ~ e4 ~ f4@4",
  Z: "g4 ~ g4 ~ g4 f#4 e4@2 g4!5 f#4 e4@2", AA: "b3 ~ g3 ~ g3!2 f3 d#3 d3 ~ c#3 ~ a3@4", AB: "f3 ~ c3 ~ d3!2 a3 ~",
  AC: "b3@2 ~@2 f#4@2 ~@2 g4@2 d4 ~ d#4@2 d4 ~", AD: "~@4 d4 c#4 a#3 g3",
  AE: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~", AF: "b3@2 b3 ~ b3@2 b3 ~ b3@2 b3 ~ b3@2 b3 ~",
  AG: "g#3 ~ f#3 ~ f#3 ~ a3 ~ b3@2 a3 g3 e3@4", AH: "f#3 ~ f#3 ~ f#3 g#3 a3@2 g#3 ~ e3 ~ d#3@2 g#3@2",
  AI: "b3 ~ b3 ~ b3@4 b3 ~ b3 ~ b3 a#3 g#3@2", AJ: "f#3!2 f#3@2 f#3!2 e3 d3 c#3@2 g#3@2 a3@4",
  AK: "a3@4 a3@4 c4!5 b3 a3 ~", AL: "c4@2 g3!4 f3 d#3 d3@2 a3@2 a#3@2 c4@2", AM: "a#3 ~@3 f3 ~@3 a#3 ~@3 f3 ~@3",
  AN: "c#4 ~ a4 ~ a4 ~ g#4 f#4 d#4!2 f#4!2 a#4@4", AO: "f#4 ~@3 c#4 ~@3 d#4 ~ c#4 ~ c4 ~ a#3 ~",
  AP: "d4@2 d4 ~ f4 e4 d4 ~ d4@2 d4 ~ f4 e4 d4 ~", AQ: "c#4 c4 b3@2 c#4 c4 b3@2 b3 a3 g3@2 b3 a3 g3@2",
  AR: "g4 d4 a#3 g3 g4 d4 a#3 g3!2 ~@3 d#4 ~@3", AS: "g4 ~@3 d#4 ~@3 d4@2 ~@2 a#3@2 ~@2",
  AT: "d4 c#4 b3 a3 g3@4 ~@2 g4!3 ~ g4 ~", AU: "a#4 a4 g4@2 a#4 a4 g4@2 ~@2 g4!3 ~ g4 ~",
  AV: "~@2 g4 ~@3 g4 ~@3 f#4!3 ~ f#4 ~", AW: "~@2 f#4 ~ f#4@4 c4@2 ~@2 g3@2 ~@2", AX: "d4 c4 a#3 a3 ~@4",
})).s("gm_viola").gain(0.3)

// other · viola · soft notes
const viola_soft = note(`<
  ~@51
  [~@8 g3 ~ g3 ~ g3 ~ g3 ~]
  [g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~]
  [g3 ~ g3 ~ g3 ~ g3 ~ a#4 a4 g4@2 a#4 a4 g4@2]
  [g4 ~]
>`).s("gm_viola").gain(0.2)

stack(violin, violin_soft, violin_2, viola, viola_soft)

More by Danny Elfman