Strudelify
Without You cover art

#1 to Infinity

Without You

Mariah Carey

KeyF♯ majorTempo61 bpm
0:00/0:00
// Without You — Mariah Carey
// 61 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 28, 4/4 at bar 28) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 55 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(61/4)

// 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: edit a riff to change every repeat.

// chords · piano · "A.PIANO 2"
const piano = note("<A@2 B C D E F G H@2 B C D I F J K@2 L M N O P Q R@2 S@7 T@2 U@8 V@4 W@8>".pickRestart({
  A: "[[a#4,c#5,g#5] [a#4,c#5] [a#4,c#5,f#5] [a#4,c#5] [a#4,c#5,g#5] [a#4,c#5] [a#4,c#5,f#5]!2, [f#2,f#3], ~ g#5@3 ~ g#5@3, ~@3 f#5@3 ~@2]/2", // A#m7 A#m F# A#m A#m7 A#m F#
  B: "[a#4,c#5,g#5] [a#4,c#5] [a#4,c#5,f#5]!2, [f#2,f#3], ~ g#5@3", // A#m7 A#m F#
  C: "[a#4,c#5,g#5] [a#4,c#5] [a#4,c#5,f#5]!2, [a#2,a#3], ~ g#5@3", // A#m7 A#m F# A#
  D: "[g#4,b4,d#5,g#5] [g#4,b4,d#5] [g#4,b4,d#5,f#5]!2, [g#2,g#3], ~ g#5@3", // G#m G#m7 G#
  E: "[a#4,c#5,f5]@2 [a#4,c#5,f5]@2 [a#4,d5,f5] ~@2 a#2, [a#2,a#3] a#3, ~@4 a#2@3 ~, ~@3 [a#4,d5,f5]", // A#m A#
  F: "[a#4,d#5,f#5]@2 ~ d#2 [a#4,d#5,f#5]@2 ~ c#2, d#3@17 ~@7 [a#4,d#5,f#5]@8, d#2@3 ~ c#3@4, ~@2 [a#4,d#5,f#5]@2 c#2@3 ~", // D#m
  G: "[a#4,d#5,f#5]@2 ~ c2 [a#4,d#5,f#5]@2 ~ c2, c3@16 c3@15 ~, c2@3 ~ c2@3 ~, ~@8 [a#4,d#5,f#5]@8 ~@8 [a#4,d#5,f#5]@7 ~", // D#m
  H: "[[a#4,c#5,g#5]!2 [a#4,c#5,f#5]!2 [a#4,c#5,f#5] ~ [g#4,c#5,f5]!2, [f#2,f#3]@16 [f#2,f#3]@33 ~@15, ~@2 c#3!2, ~@8 c#2@3 c#2@5, ~@40 [a#4,c#5,f#5]@9 ~@15]/2", // A#m7 F# C# F#
  I: "[a#4,c#5,f5]@2 [a#4,c#5,f5]@2 [a#4,f5] ~@2 a#2, [a#2,a#3] a#3, ~@4 a#2@3 ~, ~@2 d5 [a#4,d5,f5]", // A#m A#5 A#
  J: "[a#4,d#5,f#5]@2 ~ c2 ~@3 c2, c3@16 c3@15 ~, c2@3 ~ c2@3 ~, ~@8 [a#4,d#5,f#5]@16 [a#4,d#5,f#5]@7 ~", // D#m
  K: "[[a#4,c#5,g#5]!2 [a#4,c#5,f#5] ~ [a#4,c#5,f#5] ~ [g#4,c#5,f5]!2, [f#2,f#3] f#3@2 c#3, ~@16 f#2@12 f#2@21 ~@15, ~@6 [a#4,c#5,f#5]@2 c#3@3 c#2@5, ~@32 c#2@8 [a#4,c#5,f#5]@9 ~@15]/2", // A#m7 F# C# F#
  L: "~@3 f#2 a#4!2 ~ f#2, f#3!2, f#2@3 ~ f#2@3 ~, ~ [a#4,c#5,f#5] [c#5,f#5] [a#4,c#5,f#5]", // F# F#5 F#
  M: "d#4 ~@2 d#2 ~ [d#4,f#4] ~ d#2, d#3!2, d#2@2 f#4@2 d#2@3 ~, [f#4,a#4] [a#4,d#5]@2 ~, ~ d#4@4 ~ [d#4,f#4,a#4,d#5]@2", // D#m F# D#5 D#m
  N: "[d#4,g#4,b4,d#5]@2 ~@3 d#4 ~ g#2, g#3!2, g#2@3 g#2@4 ~, ~ [g#4,b4,d#5]@2 ~, ~@2 d#4@3 ~ [d#4,g#4,b4,d#5]@2", // G#m
  O: "[f4,g#4,c#5]@2 [g#4,c#5] ~@3 f5 [c#5,f5], [c#2,c#3]@5 c#5 c#6@2, ~ f4@3, ~@3 [g#4,c#5] f5 g#4@3, ~ g#5", // C# C#5 C# C#5
  P: "[f#4,a#4,c#5,f#5]@2 ~@2 [f#4,a#4,c#5,f#5]@2 ~ f#2, f#3!2, f#2@3 f#2@4 ~, ~ [f#4,a#4,c#5,f#5] ~ [f#4,a#4,c#5,f#5]", // F#
  Q: "[d#4,f#4,a#4,d#5]@2 ~ d#2 [d#4,f#4]!2 ~ d#2, d#3!2, d#2@3 ~ d#2@3 ~, ~ [d#4,f#4,a#4,d#5] [a#4,d#5] [d#4,f#4,a#4,d#5]", // D#m D#5 D#m
  R: "[[d#4,g#4,b4,d#5]@2 ~@3 d#4 ~@2 [g#4,c#5]@2 ~ c#2 [c#2,c#3,g#4,c#5,f5,g#5]@4, g#3@2 g#3@2 c#2 [g#4,c#5] ~@2, g#2@12 g#2@16 g#2@21 ~@15, ~@8 [g#4,b4,d#5]@16 g#4@8 [c#3,f4]@17 ~@15, ~@8 d#4@12 ~@4 [d#4,b4,d#5]@25 ~@15]/2", // G#m C#5 C# C#5 G#m C# G#m
  S: "[~@20 [a#4,c#5,g#5]@8 [a#4,c#5]@8 [a#4,c#5,f#5]@8 [a#4,c#5,f#5]@8 [a#4,c#5,g#5]@8 [a#4,c#5]@8 [a#4,c#5,f#5]@8 [a#4,c#5,f#5]@8 [g#4,b4,d#5,g#5]@8 [g#4,b4,d#5]@8 [g#4,b4,d#5,f#5]@8 [g#4,b4,d#5,f#5]@8 [a#4,c#5,f5]@8 [a#4,c#5,f5]@8 [a#4,d5,f5]@4 ~@8 a#2@4 [a#4,d#5,f#5]@8 [a#4,d#5,f#5]@8 [a#4,d#5,f#5]@8 [a#4,d#5,f#5]@8 [a#4,d#5,f#5]@8 [a#4,d#5,f#5]@8 [a#4,d#5,f#5]@8 [a#4,d#5,f#5]@7 ~ [a#4,c#5,g#5]@8 [a#4,c#5,g#5]@4, ~@20 [f#2,f#3]@32 [a#2,a#3]@33 ~@7 g#5@24 [a#2,a#3]@16 a#3@16 ~@16 [c#2,c#3]@16 [c2,c3]@31 ~@13, ~@28 g#5@24 ~@8 g#5@24 [g#2,g#3]@33 ~@15 a#2@12 ~@4 [d#2,d#3]@17 ~@47 [f#2,f#3]@12, ~@35 [a#4,d5,f5]@2 ~@19]/7", // A#m7 A#m F# A#m7 A#m F# G#m G#m7 …
  T: "[~ [a#4,c#5,f#5]@2 [a#4,c#5,f#5]@2 [a#4,c#5,f#5]@2 [a#4,c#5,f#5]@2 [g#4,c#5,f5]@2 [g#4,c#5,f5]@2 ~@2 [a#4,c#5,f#5], ~@5 [c#2,c#3]@4 c#3@4 [f#2,f#3]@3]/2", // F# C# F# C# F#
  U: "[f#2 a#4!2 ~ f#2 d#4 ~@2 d#2 ~ [d#4,f#4] ~ d#2 [d#4,g#4,b4,d#5]@2 ~@3 d#4 ~ g#2 [f4,g#4,c#5]@2 [g#4,c#5] ~@3 f5 [c#5,f5] [f#4,a#4,c#5,f#5]@2 ~@2 [f#4,a#4,c#5,f#5]@2 ~ f#2 [d#4,f#4,a#4,d#5]@2 ~ d#2 [d#4,f#4]!2 ~ d#2 [d#4,g#4,b4,d#5]@2 ~@3 d#4 ~@2 [g#4,c#5]@2 ~ c#2 [f5,g#5,c#6]@2 ~ [c#2,c#3] ~@2 [a#4,c#5,f#5], ~@4 f#3@16 d#2@8 f#4@8 d#2@12 ~@4 g#2@12 g#2@16 ~@4 [c#2,c#3]@20 c#5@4 c#6@8 f#3@16 f#3@17 ~@31 g#3@16 g#3@16 [c#2,c#3]@8 [g#4,c#5,f5]@8 [c#2,c#3,c#5]@8 [f5,g#5,c#6]@8 ~@12, ~@4 f#2@12 ~@4 d#3@16 d#3@16 g#3@16 g#3@18 ~@14 g#5@16 f#2@12 f#2@16 ~@4 d#3@16 d#3@17 ~@7 d#4@12 ~@4 [d#4,b4,d#5]@40 ~@12, ~@2 [c#5,f#5]@4 [a#4,c#5,f#5]@4 [f#4,a#4]@4 [a#4,d#5]@8 ~@8 [g#4,b4,d#5]@8 ~@10 [g#4,c#5]@2 f5@2 g#4@7 ~@15 d#2@6 ~@2 d#2@6 ~@2 g#2@6 g#2@8 g#2@18 [f#2,f#3]@6, ~@24 d#4@16 ~@4 [d#4,f#4,a#4,d#5]@8 ~@8 d#4@12 ~@4 [d#4,g#4,b4,d#5]@10 ~@6 f4@26 ~@6 [f#4,a#4,c#5,f#5]@8 ~@8 [f#4,a#4,c#5,f#5]@9 ~@7 [d#4,f#4,a#4,d#5]@8 [a#4,d#5]@8 [d#4,f#4,a#4,d#5]@9 ~@7 [g#4,b4,d#5]@16 g#4@8 f4@32 ~@12]/8", // D#m G#m C# C#5 C# F# D#m G#m …
  V: "[f#2 a#4!2 ~ f#2 d#4 ~@2 d#2 ~ [d#4,f#4] ~ d#2 [d#4,g#4,b4,d#5]@2 ~@3 d#4 ~ g#2 [f4,g#4,c#5]@2 [g#4,c#5] ~@3 f5 [c#5,f5] ~@2 [a#4,c#5,f#5], ~ f#3@4 d#2@2 f#4@2 d#2@3 ~ g#2@3 g#2@4 ~ [c#2,c#3]@5 c#5 c#6@2 [f#2,f#3]@3, ~@4 f#2@12 ~@4 d#3@16 d#3@16 g#3@16 g#3@18 ~@14 g#5@17 ~@11, ~@4 [c#5,f#5]@8 [a#4,c#5,f#5]@8 [f#4,a#4]@8 [a#4,d#5]@16 ~@16 [g#4,b4,d#5]@16 ~@20 [g#4,c#5]@4 f5@4 g#4@13 ~@11, ~@24 d#4@16 ~@4 [d#4,f#4,a#4,d#5]@8 ~@8 d#4@12 ~@4 [d#4,g#4,b4,d#5]@10 ~@6 f4@25 ~@11]/4", // D#m G#m C# C#5 C# F# C# F# …
  W: "[f#2 a#4!2 ~ f#2 d#4 ~@2 d#2 ~ [d#4,f#4] ~ d#2 [d#4,g#4,b4,d#5]@2 ~@3 d#4 ~ g#2 [f4,g#4,c#5]@2 [g#4,c#5] ~@3 f5 c#5 [f#4,a#4,c#5,f#5]@2 ~@2 [f#4,a#4,c#5,f#5]@2 ~ f#2 [d#4,f#4,a#4,d#5]@2 ~ d#2 [d#4,f#4]!2 ~ d#2 [d#4,g#4,b4,d#5]@2 ~@3 d#4 ~@2 [g#4,c#5]@2 ~ c#2 [c#2,c#3,g#4,c#5,f5,g#5]@4 ~@3, ~@4 f#3@16 d#2@8 f#4@8 d#2@12 ~@4 g#2@12 g#2@16 ~@4 [c#2,c#3]@20 c#5@4 c#6@4 f5@4 [f#2,f#3]@8 [f#4,a#4,c#5,f#5]@4 f#2@4 f#3@8 [f#4,a#4,c#5,f#5]@8 d#3@16 d#3@17 ~@7 d#4@12 ~@4 [d#4,b4,d#5]@8 c#2@8 [g#4,c#5]@8 ~@28, ~@2 f#2@6 ~@2 d#3@8 d#3@8 g#3@8 g#3@9 ~@7 g#5@24 d#2@6 ~@2 d#2@6 ~@2 g#2@6 g#2@8 g#2@10 ~@14, ~@4 [c#5,f#5]@8 [a#4,c#5,f#5]@8 [f#4,a#4]@8 [a#4,d#5]@16 ~@16 [g#4,b4,d#5]@16 ~@20 [g#4,c#5]@4 f5@4 g#4@45 ~@15 [a#4,d#5]@8 ~@8 g#3@16 g#3@32 ~@28, ~@24 d#4@16 ~@4 [d#4,f#4,a#4,d#5]@8 ~@8 d#4@12 ~@4 [d#4,g#4,b4,d#5]@10 ~@6 f4@57 ~@7 [d#4,f#4,a#4,d#5]@8 ~@8 [d#4,f#4,a#4,d#5]@9 ~@7 [g#4,b4,d#5]@16 g#4@8 [c#3,f4]@16 ~@28]/8", // D#m G#m C# C#5 F# D#m G#m C#5 …
})).s("gm_piano").gain(0.42).pan(0.4)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@10 A B C D E F A G H I J K L M J N O P Q R S T U V W X Y Z AA AB AC AD AE X Y Z AE X Y Z AA AB AC AD AF
>`.pickRestart({
  A: "f#2@3 f#2 f#2@4", B: "a#2@3 a#2 a#2@4", C: "g#2@3 g#2 g#2@3 g#2", D: "a#2@3 a#2 a#2@2 ~ a#1",
  E: "d#2@3 d#2 c#2@3 c#2", F: "c2@3 c2 c2@4", G: "c#2@3 c#2 c#2@4", H: "f#2@3 f#2 ~@2 f#1@2, ~ f#2",
  I: "[d#1,d#2]@3 [d#1,d#2] [d#1,d#2]@4", J: "[g#1,g#2]@3 [g#1,g#2] [g#1,g#2]@4",
  K: "[c#1,c#2]@3 [c#1,c#2] [c#1,c#2]@4", L: "[f#1,f#2]@3 [f#1,f#2] [f#1,f#2]@4",
  M: "[d#1,d#2]@3 [d#1,d#2] d#1@4, d1 ~@3 d#2@3 ~", N: "[c#1,c#2]@2 ~ [c#1,c#2] [c#1,c#2]@4", O: "~@5 [f#1,f#2]@3",
  P: "[f#1,f#2] [f#1,f#2]@4 [a#1,a#2]@3", Q: "[a#1,a#2] [a#1,a#2]@4 [g#1,g#2]@3",
  R: "[g#1,g#2] [g#1,g#2]@4 a#2@2 ~, ~@5 a#1 ~@2", S: "[a#1,a#2] [a#1,a#2]@3 [a#1,a#2] [d#1,d#2]@3",
  T: "[d#1,d#2] [c#1,c#2]@3 [c#1,c#2] [c1,c2,c3]@3", U: "[c1,c2,c3] c1@3 c1 [f#1,f#2]@3, ~ [c2,c3]@4 ~@3",
  V: "[f#1,f#2] [f#1,f#2]@4 c#2@3, ~@5 c#1@2 ~", W: "[c#1,c#2] c#1@3 c#1 f#2@3, ~ c#2@4 ~@3",
  X: "f#2 ~@2 f#1@2 [d#1,d#2]@3, ~ f#2@4 ~@3", Y: "[d#1,d#2] [d#1,d#2]@4 g#1@3, ~@5 g#2@2 ~",
  Z: "[g#1,g#2] [g#1,g#2]@4 [c#1,c#2]@3", AA: "[c#1,c#2] [c#1,c#2]@4 [f#1,f#2]@3",
  AB: "[f#1,f#2] [f#1,f#2]@4 [d#1,d#2]@3, ~@5 d1 ~@2", AC: "[d#1,d#2] d#1@4 [g#1,g#2]@3, ~ d#2@3 ~@4",
  AD: "[g#1,g#2] [g#1,g#2]@4 [c#1,c#2]@2 ~", AE: "[c#1,c#2] [c#1,c#2]@4 f#2@3", AF: "[c#1,c#2] [c#1,c#2]@4 ~@3",
})).s("gm_acoustic_bass").gain(0.36).pan(0.6)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@14 A B@2 ~@9 C D E F@2 G@3 H@2 I J@3 K L@2 M N ~ O M N ~ O M N ~@2>".pickRestart({
  A: "f#4@2 a#4 a#4@3 d#5 d#5@3 f#5 f#5@3 d#5@2", B: "[a#5@2 g#5@8 d#5@2 d#5@2 f#5 d#5@3 c#5@10 ~@4]/2",
  C: "~@6 a#3 c#4@3 f#4@2 f#4@2 f#4@2", D: "f4 f4@3 c#4@2 c#4 f4@3 f#4@2 f#4@2 f#4@2",
  E: "g#4 f4@3 c#4@2 c#4 f4@3 f4@2 d#4@2 d#4@2",
  F: "[c#4@2 c#4@6 b3@4 b3@4 a#3@4 f4@20 a#3@3 a#3@4 ~ g#3@4 f#3@4 a#3@2 a#3@6]/2",
  G: "[a#3 a#3@3 d#4 d#4@3 d#4 a#4@3 g#4@8 d#4@2 d#4@2 f#4 d#4@3 c#4@10 ~@10]/3",
  H: "[~@8 c#6@2 c#6@15 g#5!2 f#5!2 d#5 f#5@2]/2", I: "g#5 f#5@2 d#5@5 a#5@2 c#6@3 b5@3",
  J: "[a#5 g#5 g#5@5 d#5 c#6@2 b5@2 a#5@2 g#5 c#6@3 b5@6 c#6@2 d#6@3 c#6@12 g#5!2 f#5!2 d#5 f#5@2]/3",
  K: "g#5 f#5@3 d#5@4 a#5@2 c#6@3 b5@3", L: "[a#5 g#5 g#5@5 d#5 c#6@2 b5@2 a#5@2 g#5 c#6@3 b5@8 ~@4 [f#5,a#5]@2]/2",
  M: "~@2 [f#5,a#5]!2 ~@3 [f#5,a#5]", N: "[g#5,b5] [f#5,a#5] [d#5,f#5] ~@5", O: "~@7 [f#5,a#5]",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.7)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note("<~@18 A B C D A B C D ~@8 E@2 F@16 G@3>".pickRestart({
  A: "[f#2,f#3]", B: "[d#2,d#3]@4 [f#2,f#3]@3 [d#2,d#3] [g#2,g#3] [f#2,f#3] [d#2,d#3]@6", C: "[g#2,g#3]",
  D: "[c#2,c#3]", E: "[~@5 [f#2,f#3]@8 [d#2,d#3]@2 [f#2,f#3]]/2",
  F: "[~ [d#2,d#3] [g#2,g#3] [f#2,f#3] [d#2,d#3]@6 [g#2,g#3]@16 [c#2,c#3]@16 [f#2,f#3]@16 [d#2,d#3]@4 [f#2,f#3]@2]/4", // D# G# F# D# G# C# F# D# …
  G: "[~ [d#2,d#3] [g#2,g#3] [f#2,f#3] [d#2,d#3]@6 [g#2,g#3]@16 [c#2,c#3]@16 ~@6]/3", // D# G# F# D# G# C#
})).s("gm_string_ensemble_1").gain(0.28).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@10 A@15 B C D@7 E D@7 E D@11 F>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@6 x ~@8", C: "~@5 x ~@2", D: "x!2 ~@3 x ~@2", E: "~ x ~@3 x ~@2", F: "x!2 ~@6",
})).gain(0.4).pan(0.8)

// drums · snare
const snare = s("sd").struct("<~@10 A@15 B C D@7 C D@7 C D@11 E>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@7 x", D: "~@3 x ~@3 x", E: "~@3 x ~@4",
})).gain(0.4).pan(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@17 A ~@3 B ~@12 C ~@3 D ~@3 C ~@3 D ~@3 D ~@3 D>".pickRestart({
  A: "~@13 x ~ x", B: "~@14 x!2", C: "~@5 x!5 ~@6", D: "~@8 x!2 ~@6",
})).gain(0.4).pan(0.8)

// drums · hihat
const hihat = s("hh").struct("<~@10 A@3 B A@3 B C A@2 B C A@2 D E A@7 F A@3 G A@3 F A@3 G A@3 G A@3 D>".pickRestart({
  A: "x!8", B: "x!7 ~", C: "~ x!7", D: "x!4 ~@4", E: "~@5 x!3", F: "x ~ x ~@6 x ~@2 x ~ x ~", G: "x!4 ~@2 x!2",
})).gain(0.4).pan(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@17 A ~@3 B ~@12 C ~@3 D ~@3 C ~@3 D ~@3 D ~@3 D>".pickRestart({
  A: "~@7 x", B: "~@13 x!2 ~", C: "~@3 x!2 ~@11", D: "~@7 x!2 ~@7",
})).gain(0.4).pan(0.8)

// drums · open hat
const open_hat = s("oh").struct("<~@13 A ~@4 B ~@6 C ~@8 D ~@7 D ~@3 D ~@8>".pickRestart({
  A: "~@7 x", B: "x", C: "~@7 x ~@8", D: "~@5 x ~@2",
})).gain(0.45).pan(0.8)

// drums · high tom
const high_tom = s("ht").struct("<~@22 x ~@15 [~@5 x ~@2] ~@11 [~@5 x ~@2] ~@4>").gain(0.35).pan(0.8)

// drums · crash
const crash = s("cr").struct("<~@18 A ~@3 A ~@11 B ~@3 B ~@3 B ~@3 B ~@3 B ~@4>".pickRestart({
  A: "x", B: "~@5 x ~@2",
})).gain(0.4).pan(0.8)

stack(
  piano, bass, string_ensemble_1, string_ensemble_1_2, kick, snare, low_tom, hihat, mid_tom, open_hat, high_tom, crash
)

More by Mariah Carey