Strudelify

Tale As Old As Time

Alan Menken

KeyF majorTempo70 bpm
0:00/0:00
// Tale As Old As Time — Alan Menken
// 70 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4272106; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 56 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(70/4)

// 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 · violin · "Violin I"
const violin = note(`<
  A B A C A B A C D E F G H I J G K L K M N O P Q R S T U V W X Y Z AA Z AB AC AD AE AF AD AF AG AH AI AJ AK AL AM AN AO
  AP AQ AR AS AT
>`.pickRestart({
  A: "~@4 a4 bb4 g4 a4", B: "f4 c4", C: "f4 c5", D: "a4", E: "bb4 f5@3", F: "f4", G: "c5", H: "f4@4 f5 g5 a5 bb5",
  I: "c6@4 c6 bb5 a5 g5", J: "f5@4 bb5 a5 g5 f5", K: "~@4 a4 c5 e5 f5", L: "bb4 ~", M: "g5@4 a5 g5 a5 c5",
  N: "f5@4 f5 e5 f5 a5", O: "bb4@4 a5 bb5 g5 a5", P: "f5", Q: "c5@4 f4 g4 a4 bb4", R: "c5@4 e4@3 c5",
  S: "c5@4 d5 e5 f5 d5", T: "e5@3 e4@2 e4@2 c5", U: "c5 f5", V: "a4 c5 e5 c5", W: "f5@4 f5 g5 a5 f5",
  X: "g5@4 bb4 ~ f5 c5", Y: "g5 ~@3", Z: "~@4 a4 b4!2 c5", AA: "b4@3 ~@5", AB: "b4 ~", AC: "~@4 b4 a4 g4 gb4",
  AD: "c5 ~", AE: "g4 ~", AF: "~@4 b4 d5 gb5 g5", AG: "f5 f5@2 b4", AH: "g5@4 g5 gb5 g5 b5", AI: "c5@4 b4 c5 a4 b4",
  AJ: "d5@2 d5@2 b4 c5 a4 b4", AK: "g4@4 b5 a5 b5 d6", AL: "g4@4 g4 gb4 g4 b4", AM: "c5@4 b5 c6 a5 b5",
  AN: "g4@4 b4 c5 a4 b4", AO: "g4@2 d5 e5", AP: "d5", AQ: "d5 ~", AR: "b4@2 ~ d4 g4 a4 b4 d5", AS: "g5 a5 b5 d6 g6@4",
  AT: "g5",
})).s("gm_violin").gain(0.3)

// other · viola
const viola = note(`<
  A B A B A B A B C D E F G H I J K L M N O P ~ Q L R L Q 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@2 AS
>`.pickRestart({
  A: "f3@2 f3 c3 f3@2 f3 c3", B: "bb3@2 bb3 c3 bb3@2 bb3 c3", C: "f3 ~", D: "~@2 c4@2 d4 e4!2 f4", E: "g4 ~",
  F: "~@2 c4@2 d4@3 e4", G: "a3 ~", H: "a3@2 a3 c4 e4@2 f4 e4", I: "d4@2 d3 f3 bb3 a3 g3 f3", J: "e3", K: "f3", L: "c4",
  M: "a3", N: "eb4@2 f4 a3", O: "d4@3 f3 bb3@2 a3@2", P: "g3 c4", Q: "~@4 f3 g3 a3 bb3", R: "~@4 d3 e3 f3 d4",
  S: "c4@4 c4 bb3 a3 g3", T: "f3@4 f3 g3 a3 f3", U: "g3", V: "b3@4 b3 d4 gb4 g4", W: "c4 ~", X: "~@4 b3 d4 gb4 g4",
  Y: "a4 ~", Z: "~@4 g3 a3 b3 c4", AA: "d4@4 b4 a4 g4 gb4", AB: "g3@4 c4 b3 a3 g3", AC: "c4@4 b3 a3!2 g3", AD: "d3!2",
  AE: "~@4 b3 a3!2 g3", AF: "d3@4 b3 d4 gb4 g4", AG: "a4@4 b3 a3 b3 d4", AH: "g3@4 g3 gb3 g3 b3",
  AI: "c4@4 b3 c4 a3 b3", AJ: "g3@4 g3 a3 gb3 g3", AK: "e3@4 g3 b3 gb3 b3", AL: "g3@4 g3 a3 b3 d4",
  AM: "c4@4 g3 c4 gb3 b3", AN: "d4@4 b3 c4 a3 b3", AO: "d4@3 c4", AP: "~@4 b3 c4 a3 b3", AQ: "d4 b3", AR: "g3/2",
  AS: "b4",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  A B A C A B A C D E D F G H I J K J K L M N O P Q R Q S T U V W X W X W Y Z X W AA W AB AC AD AE AF AG AH AI AJ AK AL
  AM AN AO
>`.pickRestart({
  A: "~@4 a3 bb3 g3 a3", B: "f3 c3", C: "f3 c4", D: "~@4 a2 c3 e3 f3", E: "c3 ~", F: "g3 ~", G: "~@4 f3 g3 a3 bb3",
  H: "c4@4 c4 bb3 a3 g3", I: "f3@4 bb3 a3 g3 f3", J: "c3", K: "f2", L: "c3@2 f3 f2", M: "bb2@3 bb2 bb2@2 a2@2",
  N: "g2 c3", O: "f3@3 c3 a3 bb3 g3 a3", P: "f3@2 c3!2", Q: "a2 c3", R: "bb2 f2", S: "bb2 d3", T: "a3",
  U: "d2@4 ~ a2 d3 f3", V: "eb3 eb3@2 f2", W: "g2@3 g2 g2@4", X: "d3@3 d3 d3@4", Y: "gb2@3 gb2 gb2@4",
  Z: "c3@3 c3 c3@4", AA: "d3!2", AB: "d3@2 g2!2", AC: "c3 e3 c3 b2", AD: "a2 a3 g3 gb3", AE: "g3@2 g3 gb3", AF: "b3!2",
  AG: "c4@2 c4 b3", AH: "a3@4 d3@3 ~", AI: "g2@4 d3@3 d3", AJ: "g2@4 d3@3 e3", AK: "d3@2 ~@2 b3 c4 a3 b3", AL: "g3!2",
  AM: "g2@2 ~ d3 g2 a2 b2 d3", AN: "g2 a2 b2 d3 b2@4", AO: "g3",
})).s("gm_cello").gain(0.3)

stack(violin, viola, cello)

More by Alan Menken