Strudelify

Miss You Most (At Christmas Time)

Mariah Carey

KeyF majorTempo63 bpm
0:00/0:00
// Miss You Most (At Christmas Time) — Mariah Carey
// 63 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 72 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(63/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
const piano = note(`<
  A@4 B@7 C D@7 E@5 F G H I J K J 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 AO AP AQ AR
  AS@8
>`.pickRestart({
  A: "[~@22 a4@6 gb5@6 gb5@5 gb5@6 ~@23 d5@6 db5@5 d5@6 e5@6 bb4@23 a4@6 gb5@5 gb5@6 gb5@6 ~@23 d5@5 [g4,bb4,d5]@17 ~ g3@2 a3@3 bb3@3 d4, ~@28 d4@46 [d4,g4]@46 d4@45 d4@26 ~, ~@39 a4@11 ~ a4@11 a4@11 ~@58 a4@11 a4@11 ~ a4@11 ~@27, ~@45 gb5@11 ~ e5@11 ~@69 gb5@11 e5@11 ~@33]/4", // Gm G5
  B: "[~@2 g4@3 bb4@8 a3@6 gb4@11 ~ gb4@5 gb4@11 ~ e4@11 ~@6 db4@6 d4@5 e4@6 bb3@23 ~@6 gb4@11 gb4@6 gb4@11 e4@11 ~@7 g3@5 ~@6 a3@6 ~@6 a3@11 g3@11 gb4@11 ~ gb4@6 gb4@11 e4@11 ~ d4@5 gb4@6 g4@6 a4@5 ~@12 gb4@6 e4@5 e4@6 b3@6 ~@17 gb4@6 a4@5 [bb2,ab3,c4,d4]@8, ~@19 [d3,a3,d4]@46 [d3,g3]@46 [d3,a3,d4]@46 d3@45 [d3,a3]@46 [db3,b3,e4]@23 [gb2,e3,bb3,d4]@23 [b2,gb3]@34 ~@8, ~@157 bb3@17 bb3@29 ~@91 d4@12 d4@22 ~@8, ~@162 g3@29 ~@11 d4@41 ~@22 g4@11 ~@24 b3@11 b3@17 ~@8]/7", // Bb7 D5 G5 D5 Dbm7 Gbaug B5
  C: "~@15 d4@11 ~ g3@11 gb3@10, ~@4 [a2,g3,c4]@23 [d2,c4]@21", // Am7 D7
  D: "[~@2 [b3,d4]@5 b4@5 ~ b4@5 b4@5 b4@5 a4@11 g4@6 ~@6 d4@17 [b2,eb4,a4]@23 ~@6 gb4@5 gb4@6 gb4@6 gb4@5 e4@11 ~ d4@6 [g3,b3,d4]@37 [g3,bb3,d4]@13 d2@6 a2@6 d3@5 e3@6 gb3@11 d2@11 ~ [gb2,b3,gb4]@23 [gb2,e3,bb3,d4]@23 [b3,d4,gb4]@5 ~@12 gb2@6 b2@17 b2@6 [d3,a3,c4]@11, ~@2 [g2,gb3]@43 gb2@23 ~@23 [e2,g3,b3]@46 a2@50 ~@92 b2@17 ~@40, ~@7 d4@32 ~@7 a3@23 ~@118 [a3,d4,gb4]@46 ~@51 [d3,gb3,b3]@40 ~@12]/7", // Bm B7 G Gm B5 Gbaug Bm D7 …
  E: "[~@11 [d2,a3,c4]@23 [g2,d3,b3,d4]@46 [gb2,e4,a4]@11 ~ [bb2,db4,gb4]@11 [b2,a3,d4]@33 e2@7 b2@7 e3@13 ~ e2@6 b2@7 [e3,b3]@13 [e2,g3,b3,d4,gb4]@12 [gb2,a3,db4,e4]@13 [g2,g3,b3,d4]@12 [a2,g3,bb3,db4,e4]@13, ~@136 a3@27 ~ ab3@26 ~@50, ~@164 bb3@13 ~@63]/5", // D7 G Gbm7 Gb Bm7 E5 Em7 Gbm7 …
  F: "[gb3,a3,d4]@2 gb5 gb5@2 e5@2 d5, d3, ~@3 a4@5", G: "db5 d5 e5 bb4@4 a4, d3, g4@7 ~", H: "gb5!3 gb5@2 e5@2 d5, d3",
  I: "[d3,g4,bb4,e5]", J: "gb4@2 gb4 gb4@2 e4@2 ~, [d3,a3,d4]", K: "db4 d4 e4 bb3@4 ~, [d3,g3]",
  L: "g3 ~ a3 ~ a3@2 g3@2, d3, bb3@3 bb3@5, ~ g3@5 ~@2", M: "gb4@2 gb4 gb4@2 e4@2 d4, [d3,a3], d4@7 ~",
  N: "gb4 g4 a4 ~@2 gb4 e4!2, [db3,b3,e4] [gb2,e3,bb3,d4], ~@3 g4@2 ~@3", // Dbm7 Gbaug
  O: "b3 ~@3 gb4 a4 [bb2,ab3,c4,d4]@2, [b2,gb3]@3 ~, d4 d4@2 ~, ~ b3@2 b3@3 ~@2", P: "~ d4 g3 gb3, [a2,g3,c4] [d2,c4]",
  Q: "[b3,d4] b4!4 a4@2 g4, [g2,gb3], ~ d4@6 ~", R: "~ d4@3 [b2,eb4,a4]@4, gb2 ~, ~ a3@24 ~@23",
  S: "~ gb4!4 e4@2 d4, [e2,g3,b3]", T: "[g3,b3,d4]@3 [g3,bb3,d4], a2",
  U: "d2@6 a2@6 ~ d3@5 e3@6 gb3@12 d2@12, [a3,d4,gb4]", V: "[gb2,b3,gb4] [gb2,e3,bb3,d4]",
  W: "[b3,d4,gb4] ~@2 gb2 b2@3 b2, b2@3 ~@5, ~ [d3,gb3,b3]@7", X: "[d3,a3,c4] [d2,a3,c4]", Y: "[g2,d3,b3,d4]",
  Z: "[gb2,e4,a4] [bb2,db4,gb4] [b2,a3,d4]@2", AA: "e2 b2 e3@2 e2 b2 [e3,b3]@2, a3 ab3, ~@2 bb3 ~",
  AB: "[e2,g3,b3,d4,gb4] [gb2,a3,db4,e4] [g2,g3,b3,d4] [a2,g3,bb3,db4,e4]", // Em7 Gbm7 G A7
  AC: "d2@2 a2 d3 a3 ~@2 e4, [gb3,a3,d4] [d2,gb3], ~@2 d4!2, ~@5 a3@3", // D
  AD: "d2 d3 e3 gb3 [gb4,a4,d5] [g4,b4,e5] [d3,a4,d5,gb5]@2, [a3,d4,gb4] [d4,gb4,a4] d2 ~", // D Em D
  AE: "~ gb3 ~ gb3, [gb2,b3,e4] [gb2,bb3,e4]", AF: "b2@2 ~ [gb3,b3,d4], [gb3,b3]@3 ~, ~ b2",
  AG: "[bb2,g3,bb3,d4]@2 [a2,d4] [a2,db4], ~ g3", AH: "d2 a2 gb3@2 d2@4, [db4,gb4]",
  AI: "[gb2,b3,e4]@4 ~ [e4,bb4]@3, ~ gb2", AJ: "e5@2 d5 b4@2 a4 e4@2 [b2,gb3,a3,d4]@8, bb2 ~, g4@3 ~@5",
  AK: "[e2,a3] [e2,ab3]", // A5 E
  AL: "[g3,b3,d4,gb4]@2 ~ a2 [a2,g3,b3,d4,gb4]@2 [c3,g3,bb3,d4,f4]@2, a2@3 ~@5, ~ [b3,d4,gb4,a4] ~@2", // Gmaj7 Gm7 Bm7
  AM: "f2@3 f2 f2@3 g2, [f4,a4]", AN: "[a2,d4] [a2,g3,db4]", AO: "d3@4 ~@3 db3, [f4,a4,d5]@3 [f4,a4,c5], ~@4 d3@3 ~",
  AP: "[c3,eb4]@2 [f2,eb4] [f2,a3,eb4,f4]", AQ: "[bb2,a3,d4,f4]", AR: "[a2,g3,d4] [db3,a3,g4] [d3,a3,c4]@2",
  AS: "[~ [g2,f3,a3,b3,d4]@19 ~ [g2,f3,bb3]@54 [g2,bb3,d4,f4,a4]@12 [a2,c4,e4,g4]@13 [bb2,bb3,d4,f4]@12 [c3,bb3,db4,e4,g4]@13 a5@6 a5@6 ~ a5@6 a5@13 g5@12 f5@6 e5@6 ~ f5@6 g5@6 db5@25 ~ c5@6 a5@6 a5@6 a5@13 a5@8 c6@7 [d5,f5]@8 [db5,g5]@7 ~@31 c6@7 f6@8 ~@57, ~@125 [f3,c5]@50 [f3,bb4]@50 ~ f3@55 f2@60 ~@43, ~@226 [c5,f5]@25 e5@15 ~@16 [c3,c5,f5]@60 ~@42, ~@283 a5@59 ~@42]/8", // G7 Gm7 Am7 Bb C7 Dm Dbdim F5 …
})).s("gm_piano").gain(0.4)

// chords · string ensemble 2 · "Strings Low"
const string_ensemble_2 = note(`<
  A@5 ~@5 B C D E@8 F@3 G H I J I K I K L M N O P Q R S T U V W X Y Z AA G AB AC AD AE AF AC AG AH AI AJ AK AL AM AN AO
  AP@8
>`.pickRestart({
  A: "[~@28 [d5,gb5,a5]@46 [bb4,d5,g5]@46 [d5,gb5,a5]@45 [bb4,d5,e5,g5]@46 ~@29]/5", // D Gm D Em7b5
  B: "~@3 [d4,gb4,b4]@17 [d4,f4,bb4]@4", C: "~@4 [e4,a4]@23 ~@11 gb4@10, ~@9 [d4,a4]@7", D: "~@2 g4@43 gb4@3",
  E: "[~@20 [gb4,b4]@23 [e4,b4]@46 e4@37 g4@13 [d4,a4,d5]@46 [gb4,bb4,db5]@23 [gb4,bb4,d5]@23 [gb4,b4,d5]@46 [e4,a4,c5]@22 [d4,gb4,a4]@23 [d4,g4,b4]@46 [gb4,a4]@11 ~ [gb4,bb4]@4]/8", // B5 E5 D5 Gb Gbaug Bm Am D …
  F: "[~@7 [gb4,b4]@19 ~@14 [d4,gb4,b4]@27 ~ bb4@13 b4@13 [d4,gb4,g4,b4]@12 [gb4,a4,db5]@13 [d4,g4,b4]@12 [e4,a4,db5]@13, ~@34 ab4@13 ~@25]/3", // B5 Bm Gmaj7 Gbm G A
  G: "[d4,gb4,a4]", H: "[g4,d5]", I: "[d4,a4]", J: "~ d4 c4 bb3, [g4,bb4,d5]", K: "[d4,g4]", L: "~@2 gb4 g4, [d4,a4]",
  M: "[b3,e4,db5] [gb4,bb4,d5]", N: "[d4,gb4,b4]@3 [d4,f4,bb4]", O: "[e4,a4]@2 ~ gb4, ~ [d4,a4]", P: "g4",
  Q: "gb4 [gb4,b4]", R: "[e4,b4]", S: "e4@3 g4", T: "[d4,a4,d5]", U: "[gb4,bb4,db5] [gb4,bb4,d5]", V: "[gb4,b4,d5]",
  W: "[e4,a4,c5] [d4,gb4,a4]", X: "[d4,g4,b4]", Y: "[gb4,a4] [gb4,bb4] [gb4,b4] ~", Z: "[d4,gb4,b4]@2 bb4 b4, ~ ab4",
  AA: "[d4,gb4,g4,b4] [gb4,a4,db5] [d4,g4,b4] [e4,a4,db5]", AB: "[d4,gb4,a4,d5]", AC: "[gb4,db5] [gb4,bb4,db5]",
  AD: "[d4,gb4,b4]@3 [d4,gb4,b4]", AE: "[g4,d5] [g4,a4,e5]", AF: "[gb4,a4,db5,d5]", AG: "[db4,e4,b4] [d4,gb4,a4]",
  AH: "[e4,b4] [e4,ab4,b4]", AI: "[d4,g4,b4]@3 [d4,f4,g4,bb4]", AJ: "[f4,a4,c5]", AK: "[e4,a4,db5] [e4,g4,a4,db5]",
  AL: "[d4,f4,a4,c5]", AM: "[e4,g4,bb4,c5]@2 [c4,e4,g4] [eb4,f4,a4]", AN: "[f4,a4,bb4,d5]",
  AO: "[a4,db5,e5] [e4,f4,a4,d5]", // A Dm
  AP: "[~ [d4,g4,b4,f5]@19 ~ [g4,bb4,d5]@54 [bb3,d4,f4,a4]@12 [c4,e4,g4]@13 [bb3,d4,f4]@12 [bb3,db4,e4,g4]@13 [f4,f5]@50 bb4@50 ~ f5@40 bb4@15 f5@60 ~@43]/8", // G7 Gm Bbmaj7 C Bb Bbdim F
})).s("gm_string_ensemble_2").gain(0.1)

// other · blown bottle · "Sinth"
const blown_bottle = note("<~@4 A@6 ~@18 B@5 ~@39>".pickRestart({
  A: "[~@19 d5@229 ~@40]/6", B: "d5/5",
})).s("gm_blown_bottle").gain(0.05)

// other · whistle · "Sinth2"
const whistle = note("<~@16 A ~ B@3 ~@4 C D ~@13 E ~ F G H ~@27>".pickRestart({
  A: "~@7 a5@11 g5@11 gb5@11 ~@8", B: "[~@2 db5@11 ~ d5@11 e5@11 ~ g5@34 gb5@11 d5@23 ~@39]/3", C: "~@2 e5 d5",
  D: "gb5 ~@3", E: "~ a5 g5 gb5", F: "~ db5 d5 e5", G: "g5@3 gb5", H: "d5 ~",
})).s("gm_whistle").gain(0.17)

// chords · pad warm · "sinth3"
const pad_warm = note("<~@16 A@2 B@2 ~@2 C ~@4 D ~@13 E ~ F ~@2 G ~@25>".pickRestart({
  A: "[~@41 [gb4,bb4,db5]@23 [gb4,bb4,d5]@23 ~@9]/2", B: "[~@37 [e4,a4,c5]@22 [d4,gb4,a4,c5]@23 ~@14]/2",
  C: "~@20 bb4@13 b4@13 ~@2", D: "~ d4 c4 bb3", E: "[gb4,bb4,db5] [gb4,bb4,d5]", F: "[e4,a4,c5] [d4,gb4,a4,c5]",
  G: "~@2 bb4 b4",
})).s("gm_pad_warm").gain(0.19)

// chords · string ensemble 1 · "Strings2"
const string_ensemble_1 = note("<~@36 A B C D E F G H I J K L ~ M N G O E P Q R S T U V W X Y Z ~@7>".pickRestart({
  A: "g4", B: "gb4 b4", C: "e4", D: "a4", E: "[d4,a4]", F: "[gb4,bb4,db5] [gb4,bb4,d5]", G: "[gb4,b4,d5]",
  H: "[e4,a4,c5] [d4,gb4,a4]", I: "[d4,g4,b4]", J: "[gb4,a4] [gb4,bb4] [gb4,b4] ~", K: "[d4,gb4,b4]@2 bb4 b4, ~ ab4",
  L: "[d4,gb4,g4,b4] [gb4,a4,db5] [d4,g4,b4] [e4,a4,db5]", // Gmaj7 Gbm G A
  M: "[a3,d4,gb4]@2 [d4,gb4,a4]@2 [gb4,a4,d5] [g4,b4,e5] [a4,d5,gb5]@2", N: "[gb4,db5,e5] [gb4,bb4,db5,e5]",
  O: "[g4,bb4,d5]@2 d5 db5, ~ [g4,a4]", P: "[e4,gb4,db5]", Q: "[db4,ab4,b4] [d4,gb4,b4]",
  R: "[e4,b4,d5] [e4,ab4,b4,d5]", S: "[gb4,g4,b4,d5]@3 [f4,g4,bb4,d5]", T: "[f4,a4,c5]", U: "[e4,g4,a4]",
  V: "[f4,a4,d5]", W: "[c4,eb4,g4]@2 [eb4,g4,bb4] [eb4,f4,a4]", X: "[d4,f4,bb4]", Y: "[e4,a4] [d4,a4]",
  Z: "~ [d4,g4]@19 ~@28", // G5
})).s("gm_string_ensemble_1").gain(0.18)

// other · timpani
const timpani = note("<~@49 A B ~@6 C@2 ~@13>".pickRestart({
  A: "~@24 a2@2 a2 a2@2 a2 a2@2 a2 a2@2 a2 a2@2 a2 a2@2 a2 a2@2 a2 a2@2 a2", B: "a2 ~",
  C: "[~@36 g2@2 g2 g2@2 g2 g2@2 g2 g2@2 ~ a2@6 ~@42, ~@47 g2@2 ~@47]/2",
})).s("gm_timpani").gain(0.32)

// chords · string ensemble 1 · "Strings3"
const string_ensemble_1_2 = note("<~@49 A ~@8 B C D E F ~@9>".pickRestart({
  A: "[d4,gb4]@2 [gb4,a4]@2 [a4,d5] [b4,e5] [d5,gb5]@2", B: "[f4,f5]", C: "[a4,a5] [a4,g5]", D: "[d4,c5]",
  E: "[c4,c5]@2 [c4,bb4] [f4,c5]", F: "bb4",
})).s("gm_string_ensemble_1").gain(0.25)

// drums · crash
const crash = s("cr").struct("<~@4 A ~@23 B ~@11 B ~@9 B ~@7 B ~@13>".pickRestart({
  A: "~@19 x ~@28", B: "x",
})).gain(0.4)

stack(piano, string_ensemble_2, blown_bottle, whistle, pad_warm, string_ensemble_1, timpani, string_ensemble_1_2, crash)

More by Mariah Carey