Strudelify

speechless

Alan Menken

KeyA majorTempo124 bpm
0:00/0:00
// speechless — Alan Menken
// 124 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5870609; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 103 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(124/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 · cello · "Violoncello II"
const cello = note(`<
  A B A B C D E F G D 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@8 AJ AK AL@2 AM@2 AN AO@8 AP@7
  AQ AR AS@5 AT@6 AU AV@2 AW@3 AX@4 AY@2 AZ@4 BA BB@2 BC@3
>`.pickRestart({
  A: "f#2@2 ~ f#4 g#3@3 f#4", B: "a3", C: "f#2 f#3", D: "e3 f#3", E: "~ a2 d3 f#3 e3@3 e3", F: "f#3 ~",
  G: "c#3@2 c#3 f#3@5", H: "f#3@2 d3 a3@3 f#3@2", I: "a3@2 e3@4 e3 b2", J: "g#3!2", K: "d2 a2 d3 e3@3 f#3@2",
  L: "d2 a2 d3 e3@5", M: "c#2 a2 c#3 e3@3 b3@2", N: "a3 g#3 e3 c#3", O: "a2@3 e3@3 f#3@2", P: "a2@2 a3 c#4", Q: "f#4",
  R: "f4 ~", S: "f#3@3 a3", T: "d3@3 e3@5", U: "e3@2 g#3 e3", V: "c#3@3 e3", W: "f#3@3 d3@3 f#3 c#3", X: "b2 c#3",
  Y: "f#3@3 c#3@3 f#3 c#3", Z: "f#3 g#3", AA: "a3 g#3", AB: "f#3@2 e3 a3", AC: "g#3@2 a3 g#3", AD: "e3 c#3",
  AE: "f#3 e3", AF: "d3 e3", AG: "d3 a3 g#3 e3 f#3 d3 c#3 a2", AH: "c#3 ~ c#3 ~ d3 ~ d3 ~",
  AI: "[b2@4 ~@4 b2@4 ~@4 c#3@4 ~@4 c#3@4 ~@3 d3@4 ~@4 d3@4 ~@4 e3@4 ~@4 e3@4 ~@4 c#3@4 ~@4 c#3@4 ~@4 c#3@4 ~@4 c#3@4 ~@4 c#3@4 ~@4 c#3@4 ~@4 d3@4 ~@4 d3@4 ~@4 b2@4 ~@4 b2@4 ~@4 c#3@4 ~@4 c#3@4 ~@3 d3@4 ~@4 d3@4 ~@4 e3@4 ~@4 e3@4 ~@4 b2@4 ~@4 b2@4 ~@4 g#3@8 ~@4 e3@4 a3@24 ~@4 a3@4 e4@2]/8",
  AJ: "~@2 f#4@8 e4@12 c#4@3 a3@7", AK: "~ c#4@20 c#4@8 ~@3",
  AL: "[~@9 c#3@4 a3@4 g#3@4 e3@4 a3@20 ~@4 a3@4 g#3@4 f#3@7]/2",
  AM: "[~ a3@4 g#3@4 f#3@4 d3@15 c#3@8 g#2@8 d3@8 c#3@8 f3@4]/2", AN: "~ c#3@2 g#3@4 a3",
  AO: "[~@8 g#3@12 ~@8 f#3@16 e3@15 g#3@16 a3@8 g#3@8 e3@16 g#3@8 e3@8 f#3@16 d3@16 b2@15 c#3@16 f#2@32 d2@16 b2@4 e3@4 g#3@4 b3@4 a3@6]/8",
  AP: "[~@6 g#3@12 a3@8 f#3@15 e3@16 g#3@12 f#3@12 g#3@8 e3@16 c#3@16 f#3@16 d3@16 b2@15 c#3@16 f#2@32 ~@8]/7",
  AQ: "~ a3 g#3 f#3", AR: "f#3 g#3@2 a3@2 g#3@3",
  AS: "[~@3 g#3@4 a3@8 b3@8 d4@8 c#4@4 c#4@8 a3@8 f#3@20 ~@8 a3@4 g#3@4 f#3@8 f#3@4 g#3@8 a3@4 a3@4 e4@11 d4@4 d4@8 a3@8 c#4@12 b3@2]/5",
  AT: "[~@2 b3@12 a3@4 b3@20 ~@8 a3@4 b3@4 f4@16 f4@16 f4@15 f4 ~ e4 d#4 ~ d4 c#4 ~ c4 b3 a#3 ~ a3 g#3 ~ g3 f#3@32 d3@24 ~@8 d4@4 e4@4 e4@3]/6",
  AU: "~ d4@8 c#4@8 d4@7 c#4@8", AV: "[b3@2 a3@2 e3@3 d3@2 ~ c#4 b3 a3@2 c#4 b3]/2",
  AW: "[a3@8 c#4@12 b3@8 a3@16 ~@3 b3@8 c#4@12 ~@8 b3@4 d4@2 c#4@14 b3]/3",
  AX: "[a3@15 c#4@4 d4@4 e4@4 e4@4 d4@8 c#4@8 g#3@16 b3@11 a3@4 b3@4 c#4@8 d4@4 e4@8 c#4@8 b3@8 a3@10]/4",
  AY: "[~@3 c#4@2 b3@2 a3@4 c#4@2 b3@2 a3@4 a3@6 b3@4 a3@3]/2",
  AZ: "[~@6 a3@3 g#3@4 f#3@8 a3@4 g#3@4 f#3@8 a3@8 b3@8 a3@20 ~@4 b3@8 c#4@28 ~@15]/4", BA: "~@4 f#2@2 ~ f#4",
  BB: "[g#3@3 f#4 a3@8 f#3@2 ~ f#3]/2", BC: "[g#3@12 f#3@4 a3@31 f#3@32 ~@17]/3",
})).s("gm_cello").gain(0.2)

// other · contrabass
const contrabass = note("<A B A B C D E F C D G H@2 I@2 J@2 K L M N ~@7 O P Q R S Q T ~@62 U V@2 W@3>".pickRestart({
  A: "f#2 c#3 f#3@2 d3@4", B: "e3", C: "f#2 c#3 d3@2", D: "e3 c#3", E: "a2@2 b2 g#2", F: "c#3 f#2", G: "d2 a1 d2@2",
  H: "[a2@3 e2@3 b2@2]/2", I: "d2 a2 ~ d2", J: "[c#2 a2 ~ f#1@3 a2 g#2]/2", K: "d2", L: "d2 a2", M: "c#3", N: "c#2 ~",
  O: "d2 e2", P: "f#2", Q: "d2!2", R: "e2!2", S: "c#2!2", T: "b1 c#2", U: "~@4 f#2 c#3 f#3@2",
  V: "[d3@4 e3@8 f#2 c#3 f#3@2]/2", W: "[d3@16 e3@31 f#2@32 ~@17]/3",
})).s("gm_contrabass").gain(0.2)

// bass · acoustic bass
const bass = note(`<
  ~@21 A B C D E F G ~@9 H I@7 J@2 K@2 L@8 M@2 N@2 O P Q R S T U V W@8 X@2 Y Z AA AB AC AD AE@7 AF@4 AG ~@6
>`.pickRestart({
  A: "f#2@3 f#2", B: "a2@3 a2", C: "b2@3 g#2", D: "c#3@3 e2", E: "d2@3 a1", F: "b1 c#2", G: "f#2",
  H: "f#1@2 ~ f#1 f#1@2 ~@2",
  I: "[f#1@8 ~@4 f#1@4 f#1@8 ~@7 d2@4 d2@4 ~@4 d2@4 e2@8 e2@8 f#1@8 ~@4 f#1@4 f#1@8 ~@8 f#1@8 ~@4 f#1@4 f#1@8 ~@8 f#1@8 ~@4 f#1@4 f#1@8 ~@7 d2@4 d2@4 ~@4 d2@4 e1@8 b1@4 e1@4 b1@4 b1@4 ~@4 e1@4 e1@8 ~@8 d2@2]/7",
  J: "[~@2 a2@4 e3@4 f#3@12 a2@8 d3@8 c#3@4 a2@12 g#2@7 c#2@3]/2",
  K: "[~ a1@4 e2@4 a2@12 f#2@16 c#2@4 a1@4 f#1@8 c#2@8 d2@3]/2",
  L: "[~ a1@4 f#2@4 e2@8 d2@4 e2@8 d2@8 c#2@4 a1@11 g#1@8 c#2@8 c#2@4 g#1@8 d2@4 c#2@8 f2@16 c#2@16 f#2@8 c#2@4 f#2@12 a2@8 d2@8 a1@4 f#2@11 b1@8 e2@8 b1@4 g#2@12 c#2@8 c#2@8 a1@4 e2@12 c#2@8 d2@5]/8",
  M: "[~@3 a1@4 d2@12 c#2@8 b1@8 a1@4 b1@3 c#2@8 a1@4 c#2@4 f#2@6]/2",
  N: "[~ f#2@2 f#1@6 f#1@4 d2@2 d2@2 d2@2 d2@2 e2@2 e2@2 e2@2 e2@2 f#2@3]/2", O: "~ c#2@2 f#2@6 a2@4 d2@3",
  P: "~@2 a1@4 f#2@11 b1@8 e2@7", Q: "~ b1@4 g#2@12 c#2@8 c#2@7", R: "~ a1@4 e2@12 c#2@8 d2@7",
  S: "~ a1@4 d2@12 c#2@8 b1@7", T: "~ a1@3 b1@4 c#2@8 a1@4 c#2@4 f#2@8", U: "f#2 c#2@3 c#2@2 f#2@2", V: "f#2 a2 g#2 d3",
  W: "[d3@8 d3@8 d3@8 b2@7 b2@8 b2@8 b2@8 a2@8 a2@8 g#2@8 g#2@8 c#3@8 a2@8 g#2@8 a2@8 d3@8 d3@8 d3@8 d3@8 b2@7 b2@8 b2@8 f#2@8 e2@8 e2@8 e2@8 a2@8 b2@8 b2@8 b2@8 a2@4 b2@4 d3@4 d3@6]/8",
  X: "[~@2 c#3@8 a2@8 b2@20 ~@15 f#2@8 c#2@3]/2", Y: "~ f#2@8 c#2@4 f#2@4 c#2@4 d2@8 a1@3",
  Z: "~ d2@8 d2@4 a1@4 d2@4 e2@8 b1@3", AA: "~ g#2@8 g#2@4 e2@4 b1@3 c#2@8 a1@4", AB: "c#2@2 c#2 a1 c#2 d2@2 a1",
  AC: "d2@3 d2 c#2 b1@2 a1", AD: "b1 c#2@2 a1 c#2 f#2@2 f#2",
  AE: "[f#1@12 f#1@7 d2@4 d2@4 d2@4 d2@4 e2@4 e2@4 e2@4 e2@4 f#2@8 c#2@4 f#2@8 c#2@4 f#2@4 c#2@4 d2@8 a1@4 d2@8 d2@4 a1@4 d2@4 e2@8 b1@4 g#2@8 g#2@3 e2@4 b1@4 c#2@8 a1@4 c#2@8 a1@4 e1@4 c#2@4 d2@8 a1@4 d2@12 d2@4 c#2@4 b1@8 a1@4 b1@2]/7",
  AF: "[~@2 c#2@8 a1@4 c#2@4 d2@8 d2@4 a1@11 d2@4 a1@4 d2@8 d2@4 a2@8 a1@4 d2@4 a2@4 b2@8 b2@4 a2@8 b1@4 d2@4 f#2@4 b2@4 b2@4 b2@4 b2@3]/4",
  AG: "~ b1@4 b1@4 b1@4 b1@4 ~@15",
})).s("gm_acoustic_bass").gain(0.2)

// bass · contrabass
const bass_2 = note("<A@4 ~@32 B C D@6 E@8 F@8 G@8 H@7 I@2 J@8 K@5 L M L N O P Q ~@4 R@2>".pickRestart({
  A: "f#2/2", B: "d2 a2 g#2 e2 f#2 d2 c#2 a1", C: "f#2 ~ f#2 ~ f#2 ~ f#2 ~",
  D: "[f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@3 d2@4 ~@4 d2@4 ~@4 e2@4 ~@4 e2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@4 f#2@4 ~@3 d2@4 ~@4 d2@4 ~@4 d2@4 ~@4 d2@4 ~@4 e1@2]/6",
  E: "[~@6 e1@4 ~@4 e1@8 ~@8 d2@63 c#2@24 f#2@40 d2@63 c#2@32 c#2@4]/8",
  F: "[~@12 c#3@16 f#2@16 f#2@16 d2@16 d2@15 e2@16 e2@16 c#2@16 c#2@16 d2@16 d2@16 b1@15 c#2@16 f#1@16 f#2@16 d2@6]/8",
  G: "[~@2 d2@8 e2@8 e2@8 f#2@16 f#2@16 d2@15 d2@16 e2@16 e2@16 c#2@16 c#2@16 d2@16 d2@16 b1@15 c#2@16 f#2@16 f#1@16 f#1@2 ~@2 f#1@2 ~@2]/8",
  H: "[f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 d2@32 e2@31 a2@16 g#2@16 f#2@32 d2@32 b1@31 e2@10]/7",
  I: "[~ e2@6 e2@4 e2@16 f2@2 f2@3]/2",
  J: "[~@2 f2@8 f2@8 f2@20 ~@15 f#2@16 f#2@16 d2@16 d2@16 e2@16 e2@15 c#2@16 c#2@16 d2@16 d2@16 b1@16 c#2@16 f#2@12]/8",
  K: "[~@4 f#2@8 f#1@7 d2@8 d2@8 e2@8 e2@8 f#2@16 f#2@16 d2@16 d2@16 e2@16 e2@15 c#2@14]/5", L: "~ c#2@8 d2@7",
  M: "~ d2@8 b1@7", N: "~@2 d2@15 d2@15", O: "~ d2@16 b1@8 b1@7", P: "~ b1@8 b1@8 b1@4 b1@4 b1@4 b1@3",
  Q: "~ b1@4 b1@4 b1@4 b1@4 ~@15", R: "[~@15 f#1@32 ~@17]/2",
})).s("gm_contrabass").gain(0.2)

// bass · acoustic bass
const bass_3 = note("<~@4 A@2 B C D@2 E F G E@2 H@2 E@2 I@2 D E F J E K L B D E F J E M ~@62 N@5 ~>".pickRestart({
  A: "f#2/2", B: "d2 e2", C: "f#2 f#1", D: "f#2", E: "d2", F: "e2", G: "e2 e1", H: "[c#2@3 f#2@3 f#2@2]/2",
  I: "[c#2@3 c#2]/2", J: "c#2", K: "b1", L: "f#2@3 f#2", M: "b1 c#2", N: "[~ f#2@2 f#2@2 f#1@2 f#1@2 ~]/5",
})).s("gm_acoustic_bass").gain(0.2)

stack(cello, contrabass, bass, bass_2, bass_3)

More by Alan Menken