Strudelify
Vanishing cover art

1990 · Mariah Carey

Vanishing

Mariah Carey

KeyE majorTempo90 bpm
0:00/0:00
// Vanishing — Mariah Carey
// 90 bpm, 3/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 129 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 11 ms behind the beat; the grid follows it, so its parts stay together.
setcpm(90/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "piano rigt hand"
const piano = note(`<
  A B 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 R AB E F G H I ~ J K L M N O P AC R S T U V W X Y AD AE R AF
  AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ ~ BA AO BB AO BC BD BE G H I BF J BG L M N O P BH R S BI
  BJ@3 X Y BK BL R BM BN BO BP ~ BQ BR BS BT BU BV@3 BW BX BY BZ CA CB CC CD ~
>`.pickRestart({
  A: "[e3,a3,c#4]@6 ~@2 [a3,e4]@5 ~@3 [c#4,a4]@6 ~@2", B: "[b3,g#4]@11 ~@5 [g#3,b3,e4]@3 ~ b3@2 g#3@2",
  C: "[e3,a3,c#4]@3 ~ [a3,e4]@3 ~ [c#4,e4,a4]@3 ~", D: "[b3,e4,g#4]@6 ~@2 [g#3,b3,e4]@3 ~",
  E: "[f#3,b3,d#4]@11 ~@5 f#3@6 ~@2", F: "[f#3,b3]@11 ~@13", G: "[c#4,f#4]@5 ~@3 c#4@11 ~@5, f#3@2 ~",
  H: "c#4@5 ~@3 d#4@6 ~@2 [d#3,a#3,c#4]@6 ~@2, [f#3,a#3] ~", I: "[f#3,b3,d#4]@11 ~@13",
  J: "[a3,c#4] [a3,c#4,e4] [a3,c#4,f#4], f#4@5 ~@19", K: "[g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~", L: "[d#3,b3]@17 ~@7",
  M: "[f#3,b3]@6 ~@2 [b3,d#4]@3 ~", N: "[a#3,d#4,f#4]@6 ~@2 [d#3,a#3,c#4]@11 ~@5",
  O: "c#4@6 ~@2 d#4@5 ~@3 [d#3,a#3,c#4]@6 ~@2, [e3,a#3]@11 ~@13", P: "[d#3,g#3,b3]@11 ~@5 g#3@3 ~@3 c#4@2",
  Q: "[b3,d#4] ~@2 [g#3,b3,d#4]@2 ~@7, g#3 ~@23", R: "[a3,c#4]@2 ~", S: "[g#3,b3,e4]@11 ~@13",
  T: "[a3,c#4,f#4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,f#4]@3 ~", U: "[a#3,c#4,e4]@17 ~@7", V: "~@8 [d#3,a#3,c#4]@11 ~@5",
  W: "[d#4,f#4]@3 ~@13 [f#3,a#3,b3]@6 ~@2, d#3@11 ~@13", X: "[e3,g#3,b3] ~@7",
  Y: "[g#3,b3,e4,g#4]@3 ~ [a3,d4,f#4]@3 ~ [g#3,b3,e4]@3 ~", Z: "[a3,c#4,d#4]@6 ~@2 [d#3,a3,c#4]@11 ~@5",
  AA: "d#3@11 ~@5 [d#3,g#3,b3]@5 ~@3, d#4 ~@7", AB: "[b3,e4,g#4]@3 ~ [a3,d4,f#4]@3 ~ [g#3,b3,e4]@3 ~",
  AC: "[g#3,d#4]@2 ~@4 [g#3,b3,d#4]@3 ~@15, b3 ~@23", AD: "[a#3,c#4]@17 ~@7",
  AE: "g#3@11 ~@5 b3@5 d#3@3, c#4@6 ~@10 g#3@3 ~@5", AF: "[g#3,b3,e4]@3 ~ [b3,e4,g#4]@3 ~ [e4,g#4,b4]@3 ~",
  AG: "[a#3,c#4,d#4]@17 ~@7", AH: "[g#3,c#4]@11 ~@5 g#3@3 ~ d#3@3 ~", AI: "[a#3,c#4,f#4]@17 ~@7",
  AJ: "g#3@6 ~@2 [g#3,g#4]@3 ~@5 [b3,b4]@3 ~ [c#4,c#5]@3 ~", AK: "[d#4,a#4,c#5]@6 ~@2 [a#3,c#4,d#4]@9 ~@7",
  AL: "[d#4,g#4]@17 ~@7", AM: "[e4,a4,c#5]@3 ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5]@3 ~",
  AN: "[e4,g#4,b4]@5 ~@3 [e4,g#4,b4]@7 ~ [e4,g#4,b4]@6 ~@2", // E
  AO: "[c#4,e4,a4]@6 ~@2 [c#4,e4,a4]@5 ~@3 [c#4,e4,a4]@6 ~@2", // A
  AP: "[c#4,e4,f#4]@6 ~@2 [c#4,e4,f#4]@6 ~@2 [c#4,e4,f#4]@7 ~", AQ: "[g3,b3,c#4,e4]@11 ~@13", AR: "[b3,e4]@2 ~",
  AS: "~@16 f#3@3 ~@3 [f#3,b3]@2", AT: "[g#3,c#4]@3 ~@2 d#3@3 [f#3,b3]@3 ~@5 [d#3,g#3]@6 ~@2",
  AU: "[e3,g3,b3,c#4]@11 ~@13", AV: "[a#3,c#4,f#4] ~@2", AW: "[d#3,g#3]@17 ~@7",
  AX: "[g#3,b3,d#4,g#4]@3 ~ [b3,d#4,g#4,b4]@3 ~ [d#4,g#4,b4,d#5]@3 ~", AY: "[b4,c#5,e5,g5] ~",
  AZ: "[c#4,e4,g#4]@11 ~@13", BA: "[d#3,d#4]@5 ~ [f#3,f#4]@6 ~@4 [b3,b4]@3 ~ b3@3 ~",
  BB: "[b3,e4,g#4]@3 ~ [b3,e4,g#4]@3 ~ [b3,e4,g#4]@3 ~", BC: "[g#4,b4]@6 ~@2 [g#4,b4]@6 ~@2 [g#4,b4]@5 ~@3",
  BD: "[d#4,f#4,b4]@3 ~ [d#4,f#4]@3 ~@9 [g#3,b3,d#4]@6 ~@2", BE: "[f#3,b3]@11 ~@5 [f#3,b3]@6 ~@2",
  BF: "~@16 b3@3 ~ d#4@2 g#4@2", BG: "[g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~",
  BH: "[b3,d#4] ~@5 [g#3,b3,d#4]@3 ~@15, g#3 ~@11", BI: "[a3,c#4,f#4]@6 ~@2 [a3,c#4,e4]@6 ~@2 [a3,c#4,f#4]@7 ~",
  BJ: "[[a#3,c#4,e4]@8 [a#3,c#4,e4]@8 [a#3,c#4]@8 [d#3,a#3,c#4]@8 [d#3,a#3,c#4]@8 d#3@8 [d#4,f#4]@3 ~@13 [f#3,a#3,b3]@6 ~@2, ~@4 e4@4 ~@2 [a#3,c#4]@3 ~@5, ~@48 d#3@11 ~@13]/3", // A#dim A#m D#7 D#m Bmaj7 A#m
  BK: "[a#3,c#4,d#4]@5 ~@3 [a#3,c#4,d#4]@9 ~@5 g#4@2", BL: "g#3@11 ~@5 g#3@3 ~@3 d#3@2, c#4 ~@7",
  BM: "[g#3,b3,e4]@5 ~ [g#3,g#4]@5 ~@5 [c#4,c#5]@3 ~ [e4,e5]@3 ~", BN: "[d#4,a#4,c#5,d#5]@5 ~@3 [d#4,a#4,c#5]@11 ~@5",
  BO: "[d#4,g#4]@11 ~@5 [a3,d#4,f#4]@6 ~@2", BP: "[b3,e4,g#4]@4 f#4@3 ~@17",
  BQ: "[e3,a#3,c#4]@12 ~@4 [e3,a#3,c#4]@3 ~@5", BR: "[e3,g#3,b3]@6 ~@2 e3@3 ~@5 g#3@3 ~ c#4@3 ~",
  BS: "[e3,a3,c#4]@11 ~@5 [e3,a3,c#4]@5 ~@3", BT: "[e3,f#3,c#4]@5 ~@3 [e3,f#3,c#4]@6 ~@2 [e3,f#3,c#4]@6 ~@2",
  BU: "d4@3 ~ b3@3 ~ d4@4 ~@4 d4@3 ~@5",
  BV: "[d4@3 ~@5 d4@2 ~@6 d4@3 ~@9 f#4@5 ~@5 c#4 ~ b3@3 ~@13 [g#3,d4]@11 ~@5, ~@20 b3@11 ~@41, ~@3 g#3@4 ~@2]/3", // G#dim
  BW: "[a#3,c#4,d#4] ~@3", BX: "b4@2 ~", BY: "[c#4,e4,a#4]@11 ~@5 [c#4,e4,a#4]@6 ~@2", BZ: "[e4,g#4,c#5]@5 ~@19",
  CA: "[c#4,e4,g4,b4]@6 ~@2 [c#4,e4,g4]@5 ~@3 [c#4,e4,g4,b4]@6 ~@2", CB: "~ [b3,c#4,e4,g4]@18 ~@5",
  CC: "~@2 b3@5 f#3 ~@4 [c#4,f#4]@4 ~@3 b4@2 d#5@2 ~, ~@2 [c#4,d#4,f#4]@12 ~@5 c#5 ~@4", // F#5 D#m7
  CD: "~@2 c#6 [b3,c#4,d#4,f#4,d#6]@9", // B
})).s("gm_piano").gain(0.45)

// chords · piano · "piano rigt hand" · soft notes
const piano_soft = note(`<
  ~@16 A ~@25 B ~@10 C ~@3 C ~ D ~@8 E F ~@7 G ~@4 H ~@2 I ~@7 I A ~@9 J C ~ K ~@2 L@2 M N ~@2 O P Q@2 ~@6 R@2 ~
>`.pickRestart({
  A: "~@6 b3 ~", B: "~@9 b3 c#4 ~", C: "~@6 f#3 ~", D: "~@10 [b3,b4]@3 ~ [c#4,c#5]@3 ~@7", E: "~@9 g#3@2 ~",
  F: "~@2 [f#3,b3]@2 g#3@2 ~@4 [g#3,c#4]@2 [f#3,b3]@3 ~@9", G: "~@5 [g#3,g#4]@3 ~@4", H: "~@4 [f#3,b3,d#4] ~@3",
  I: "~@4 a#4@3 ~@5 f#4@3 ~@9", J: "~@6 f#4 ~", K: "~@10 [b3,b4]@5 ~@9", L: "[~@5 [g#3,c#4]@3 ~@4]/2", M: "~@10 c#4 ~",
  N: "~@4 e3 ~ b3 ~", O: "~@2 c#4@3 ~@5 c#4@2 b3@3 ~@3 c#4@2 b3@3 ~", P: "~@2 c#4@2 b3@3 ~@3 c#4@2 b3@2 ~@4 c#4@3 ~@3",
  Q: "[~@6 d#4 ~@3 c#4@4 ~@10]/2", R: "[~@9 b3@6 ~ [f#4,c#5] ~@6 f#5@2 ~ b5 ~@21]/2",
})).s("gm_piano").gain(0.2)

// bass · piano · "piano left hand"
const bass = note(`<
  A B A C D@2 E@2 F@2 A G H@2 I@2 J@2 A K L M N O P@2 N Q R S D@2 E@2 F@2 A G H@2 I@2 J@2 A K L M N O P@2 T U R V W X K
  Y N Z AA AB AC AD AE@2 AF AG AH N AI AJ AK@2 AI AL AM Y AN AO AP AQ E@2 F@2 A G AR@2 I@2 J@2 A K L M N O P@2 W AL AS
  AT N AU AV AW AX Y AY AZ BA BB BC BD BA AL BE BC BF BG BH@2 ~
>`.pickRestart({
  A: "[a1,a2]@2 ~", B: "[e1,e2]@17 ~@3 g#2@3 ~", C: "e1@16 ~@4 f#2@3 ~, f#2 ~@2", D: "[[b1,b2]@41 ~@3 f#2@3 ~]/2",
  E: "[[a#1,a#2]@33 ~@7 [g1,g2]@5 ~@3]/2", F: "[g#1@41 ~@7, g#2@2 ~]/2", G: "[e1,e2]@2 [e1,e2]",
  H: "[[b1,b2]@19 ~@5]/2", I: "[[f#1,f#2]@33 ~@7 [a1,g2]@3 ~ d#2@3 ~]/2", J: "[[g#1,g#2]@37 ~@11]/2",
  K: "[e1,e2]@17 ~@3 e2@3 ~", L: "a2@8 ~@4 a2@6 ~@2 a2@3 ~, a1@2 ~", M: "[a#1,a#2]@17 ~@3 a#1@3 ~",
  N: "[g1,g2]@16 ~@4 d#2@3 ~", O: "[g#1,g#2]@16 [d#1,d#2]@5 ~@3", P: "[[e1,e2]@32 ~@12 e2@3 ~]/2",
  Q: "g#1@17 ~@7, g#2@3 ~@5", R: "a#2@8 ~@4 a#2@9 ~@3, a#1@2 ~", S: "[f#1,f#2]@9 ~@13 c#2@2",
  T: "g2@8 ~@4 g2@6 ~@2 [g1,g2]@3 ~, g1@17 ~@7", U: "g#1@2 ~, g#2 ~@3", V: "[f#1,f#2]@11 ~@9 [f#1,f#2]@2 f#2@2",
  W: "g2@9 ~@3 g2@6 ~@2 d#2@3 ~, g1@17 ~@7", X: "g#1@17 ~@3 d#2@3 ~, g#2 ~@2", Y: "[e1,e2]@17 ~@7",
  Z: "g#1@8 ~@2 g#2 ~, g#2 ~@2", AA: "[a#1,a#2]@17 ~@3 c#2@3 ~", AB: "e1@17 ~@3 e2@3 ~, e2@3 ~@5",
  AC: "a#2@8 ~@4 a#2@7 ~ a#2@4, a#1@2 ~", AD: "a#1@16 ~@4 a#2@3 ~, a#2@3 ~@5", AE: "[[c#1,c#2]@41 ~@3 e2@3 ~]/2",
  AF: "g#2@8 ~@4 g#2@9 ~@3, g#1@2 ~", AG: "~@10 d#1 d#2", AH: "[c#1,c#2]@17 ~@7",
  AI: "g#2@8 ~@4 g#2@5 ~@3 d#2@3 ~, g#1@2 ~", AJ: "[g#1,g#2]@16 ~@4 d#2@3 ~", AK: "[[e1,e2]@40 ~@5 [g1,g2]@3]/2",
  AL: "g#1@16 ~@4 g#2@3 ~, g#2 ~@2", AM: "[a1,a2]@17 ~@3 c#2@3 ~", AN: "[a#1,a#2]@16 ~@4 a#2@3 ~",
  AO: "f#2@3 ~ f#2@5 ~@11 a#2@3 ~", AP: "[b1,b2]@2 ~", AQ: "~@20 f#2@3 ~", AR: "[[b1,b2]@37 ~@11]/2",
  AS: "a#2@8 ~@4 a#2@5 ~@3 [d#1,d#2]@3 ~, a#1@2 ~", AT: "[e1,e2]@9 ~@11 [e1,e2]@3 ~",
  AU: "[g#1,g#2]@9 ~@7 d#2@3 ~ d#2@3 ~", AV: "[e1,e2]@9 ~@3 e2@8 ~@4", AW: "[e1,e2]@8 ~@12 g#2@3 ~",
  AX: "[a#1,a#2]@17 ~@3 d#2@3 ~", AY: "[a1,a2]@16 ~@4 a2@3 ~", AZ: "[a#1,a#2]@4 ~@6 a#2 f#2",
  BA: "g2@2 ~ g2@2 ~, g1@2 ~", BB: "[g#1,g#2]@11 ~@5 [g#1,g#2]@6 ~@2", BC: "[e1,e2]@5 ~@3 [e1,e2]@6 ~@2 [e1,e2]@6 ~@2",
  BD: "[e1,e2]@6 ~@2 [e1,e2]@6 ~@2 [e1,e2]@3 ~ [f#1,f#2]@3 ~", BE: "a2@8 ~@4 a2@6 ~@2 d#2@3 ~, a1@2 ~",
  BF: "[e1,e2]@17 ~@3 b1@3 ~", BG: "~ [e2,e3]@6 ~@2 [d#2,d#3]@6 ~@3 [c#2,c#3]@6", BH: "[~ [b1,b2]@19 ~@4]/2",
})).s("gm_piano").gain(0.48)

// bass · piano · "piano left hand" · soft notes
const bass_soft = note(`<
  ~@3 A ~@3 B ~ C ~@3 D ~ E ~ C ~@7 F ~ C ~ G ~@3 B ~ C ~@3 D ~ E ~ C ~@7 H ~ C ~ I ~ C ~@3 C J F ~ K ~@3 L ~@5 L ~ M
  ~@3 N ~@3 B ~ C ~@3 D ~ E ~ C ~@7 F ~ M ~ O ~ P ~ F ~@3 Q ~@3 I ~ M ~@7
>`.pickRestart({
  A: "~@12 f#2@5 ~@7", B: "~@4 a#2 ~@3", C: "~@3 g#2@2 ~", D: "~@3 b2@2 ~", E: "~@4 f#2 ~@3", F: "~@2 e2 ~",
  G: "~@4 f#2 ~ f#2 ~", H: "~@3 [e2,g#2]@2 ~", I: "~@6 [f1,f2] ~", J: "~@6 a#2 ~", K: "~@12 a#2@5 ~@7",
  L: "~@6 [f#1,f#2] ~", M: "~@2 g#2 ~", N: "~@3 f#2@2 ~", O: "~@2 [e1,e2] ~", P: "~@4 d#2 ~@3", Q: "~@2 [a#1,a#2] ~",
})).s("gm_piano").gain(0.3)

stack(piano, piano_soft, bass, bass_soft)

More by Mariah Carey