Strudelify

Do You Think Of Me

Mariah Carey

KeyF♯ majorTempo71 bpm
0:00/0:00
// Do You Think Of Me — Mariah Carey
// 71 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 84 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(71/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.

// bass · synth bass 1
const bass = note(`<
  ~@8 A B C D ~@7 E F G H I F J K L M N M O M P Q R S T U V F J K W X Y Z AA AB AC AD AE ~@7 AF AG AH AI AJ AD AK AL AM
  AN AO AD AP AQ AR AS AT ~@8
>`.pickRestart({
  A: "f#1@24 f1@19 ~@5", B: "d#1@16 ~@5 d#1@22 ~@5", C: "f#1@23 ~ f1@13 ~@2 f1@3 f#1@3 c#1@2 ~",
  D: "d#1@20 ~ d#1@4 ~@2 d#1 ~@2 d#1@13 ~@5", E: "~@13 d#1@2 a#1", F: "d#1@13 ~@32 d#1@2 ~", G: "g#1@19 ~@29",
  H: "f#1@16 ~@26 d#1@2 ~ f#1@2 ~", I: "g#1@11 ~@19 f#1@2 ~ g#1@2 ~ a#1@3 g#1 ~@2 f#1 ~@2 c#1 ~@2",
  J: "g#1@14 ~@22 d#2@3 a#1@3 f#1@6", K: "a1@19 ~@2 e1@24 a1@3", L: "f#1@18 ~@3 f#1 ~@5 f#1 ~@2 f#1@16 ~@2",
  M: "a1@18 ~@3 a1@4 ~@2 a1 ~@2 a1@10 ~@2 a1@3 g#1@3",
  N: "f#1@19 ~@2 f#1@3 ~@3 f#1 ~@2 f#1@3 ~@3 f#1@3 g#1@3 a1@3 e1@3",
  O: "f#1@19 ~@2 f#1@3 ~@3 f#1 ~@2 f#1@4 ~@2 f#1@3 e1@3 f#1@3 g#1@2 ~",
  P: "f#1@19 ~@2 f#1@3 ~@3 f#1@2 ~ f#1@5 ~ f#1@3 g#1@2 ~ a1@3 e1@3",
  Q: "a1@18 ~@3 a1@4 ~@2 a1@2 ~ a1@10 ~@2 a1@3 g#1@3", R: "f#1@18 ~@3 f#1@4 ~@2 f#1 ~@2 f#1@7 ~@2 f#1@9",
  S: "d#1@11 ~@34 d#1@2 ~", T: "g#1@4 ~@10 d#1 g#1", U: "f#1@11 ~@31 d#1@3 f#1@3",
  V: "g#1@17 ~@4 g#1@4 ~@2 g#1@2 ~ f#1@3 g#1@3 a#1@3 g#1@3 f#1 ~@2 c#1@2 ~",
  W: "f#1@18 ~@3 f#1 ~@5 f#1 ~@2 f#1@6 f#1@10 ~@2", X: "a1@17 ~@4 a1@4 ~@2 a1 ~@2 a1@9 ~@3 a1@3 g#1@3",
  Y: "f#1@18 ~@3 f#1@4 ~@2 f#1 ~@2 f#1@7 ~@2 f#1@3 a1@3 e1@3", Z: "a1@18 ~@3 a1@5 ~ a1 ~@2 a1@8 ~@4 a1@3 g#1@3",
  AA: "f#1@19 ~@2 f#1@3 ~@3 f#1 ~@2 f#1@11 ~ e1@6", AB: "a1@18 ~@3 a1@4 ~@2 a1 ~@2 a1@9 ~@3 a1@3 g#1@3",
  AC: "f#1@19 ~@2 f#1@3 ~@3 f#1@2 ~ f#1@6 ~@3 f#1@3 a1@3 e1@3", AD: "a1@17 ~@4 a1@4 ~@2 a1 ~@2 a1@8 ~@4 a1@3 g#1@3",
  AE: "f#1@17 ~@4 f#1@6 a1@3 e1@3 f#1@3 a1@3 e1@3 f#1@6", AF: "~@36 f#2@7 ~@5, ~@33 f#1@11 ~@4, ~@36 d#2 ~@11",
  AG: "a1@17 ~@4 a1@4 ~@2 a1 ~@2 a1@8 ~@4 a1@3 g#1@2 ~",
  AH: "f#1@18 ~@3 f#1@2 ~@4 f#1 ~@2 f#1@7 ~@2 f#1@3 g#1@2 ~ e1@3", AI: "a1@17 ~@4 a1@5 ~ a1 ~@2 a1@9 ~@3 a1@3 g#1@3",
  AJ: "f#1@17 ~@4 f#1@2 ~@4 f#1@8 ~ f#1@5 ~ g#1@5 ~", AK: "f#1@18 ~@3 f#1@2 ~@4 f#1 ~@2 f#1@11 ~ e1@3 f#1@2 ~",
  AL: "a1@18 ~@3 a1@2 ~@4 a1 ~@2 a1@8 ~@4 a1@3 g#1@3",
  AM: "f#1@17 ~@4 f#1@2 ~@4 f#1 ~@2 f#1@3 g#1@3 f#1@3 e1@3 f#1@3 g#1@2 ~",
  AN: "a1@16 ~@5 a1@4 ~@2 a1 ~@2 a1@10 ~@2 a1@3 g#1@2 ~", AO: "f#1@18 ~@3 f#1@5 ~ f#1@2 ~ f#1@11 ~ e1@3 f#1@2 ~",
  AP: "f#1@17 ~@4 f#1@3 ~@3 f#1 ~@2 f#1@6 e1@3 f#1@2 ~ g#1@5 ~", AQ: "a1@17 ~@4 a1@3 ~@3 a1 ~@2 a1@9 ~@3 a1@3 g#1@3",
  AR: "f#1@18 ~@4 f#1@3 ~@3 f#1@2 ~ f#1@8 ~ f#1@2 ~ g#1@3 e1@2", AS: "~ a1@17 ~@4 a1@4 ~@2 a1 ~@2 a1@9 ~@3 a1@3 g#1@2",
  AT: "~ f#1@11 ~@4 f#1@2 ~ g#1@2 ~ f#2@2 ~@4 f#2@3 ~@6 f#1@3 g#1 ~@2 f#2@5",
})).s("gm_synth_bass_1").gain(0.38)

// bass · fretless bass
const bass_2 = note("<~@4 A B C D ~@44 E F G F H F H I ~@24>".pickRestart({
  A: "f#1@24 f1@23 ~", B: "d#1", C: "f#1@23 ~ f1@24", D: "d#1@23 ~", E: "a1@23 ~ g#1@24", F: "f#1", G: "a1@24 g#1@23 ~",
  H: "a1 g#1", I: "f#1@11 ~@13",
})).s("gm_fretless_bass").gain(0.15)

// chords · pad warm
const pad_warm = note("<A B C D E D E D F@3 G ~@40 H I@2 J@2 K@2 L M N O N M P M Q@2 P M R@3 M N ~@8>".pickRestart({
  A: "~ f#3@24 f3@23", B: "~ d#3@23", C: "f#3@25 f3@23", D: "d#3", E: "f#3 f3",
  F: "[f#3@24 f3@23 ~ d#3@48 f#3@24 f3@24, [d#5,d#6]@47 [a#4,a#5]@49 [d#5,d#6]@48]/3", G: "[d#3,a#4,a#5]",
  H: "[a3,c#4,e4]@8 g#3@7 ~", I: "[~@49 a3@23 [g#3,b3]@24, a#3@46 ~@3 e4@47, ~ c#4@71 ~@24]/2",
  J: "[[f#3,a#3]@47 ~@2 e4@23 [g#3,b3,e4]@24, c#4@3 ~, ~@48 a3@25 ~@23]/2", // F# E
  K: "[~@48 [a3,e4]@23 [g#3,b3,e4]@25, a#3 ~, ~ c#4@71 ~@24]/2", L: "[a#3,c#4]@43 ~@5", M: "a3", N: "~ f#3@47",
  O: "~ a3@47", P: "f#3", Q: "[~ f#3@46 a3@49]/2", R: "[~ f#3@46 a3@48 f#3@49]/3",
})).s("gm_pad_warm").gain(0.17).pan(0.7)

// chords · pad warm · soft notes · E5
const pad_warm_soft = note("<~@52 [~ [b3,e4]] [~@4 f#3@43 ~] ~@3 f#3 ~ [f#3@43 ~@5] ~@24>")
  .s("gm_pad_warm").gain(0.1).pan(0.7)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@3 A B C D E F C D G ~@15 H I J K L M N O P@2 ~@2 Q R S T U I J K L M N O P@2 ~@6 V I J K L M N O N I J K L M W@4 ~@7
>`.pickRestart({
  A: "~@39 g#4@3 f#4@2 ~ c#4@3",
  B: "d#4 ~@5 d#5@2 ~ d#4@2 ~@7 d#4@2 ~@7 d#4 ~@2 d#5@2 ~ d#4@2 ~@7 d#4@2 ~@4, ~@33 d#5 ~@14",
  C: "~@3 d#4 ~@2 d#5@3 d#4 ~@8 d#4@2 ~@7 d#4 ~@2 d#5@2 ~ d#4 ~@5 g#4@3 f#4@3 c#4@3",
  D: "d#4@2 ~ d#4 ~@2 d#5@2 ~ d#4 ~@8 d#4@2 ~@7 d#4 ~@2 d#5@2 ~ d#4@3 ~@6 d#4@2 ~@4",
  E: "~@3 d#4 ~@2 d#5@2 ~ d#4 ~@8 d#4@2 ~@7 d#4 ~@2 d#5@3 d#4@2 ~ [d#6,d#7]@3 g#4@3 f#4@2 ~ c#4@3, ~@36 c#7 ~@11", // D#
  F: "d#4 ~@2 d#4 ~@2 d#5@2 ~ d#4@2 ~@7 d#4@2 ~@7 d#4 ~@2 d#5@2 ~ d#4@2 ~@7 d#4@2 ~@4, ~@33 d#5 ~@14",
  G: "~@3 d#4 ~@2 d#5@2 ~ d#4 ~@8 d#4@2 ~@7 d#4 ~@2 d#5@3 d#4@2 ~@13", H: "~@39 b4@3 a#4@2 ~ e4@3",
  I: "f#4 ~@5 f#5@3 f#4@3 ~@9 e4@2 ~ f#4 ~@5 f#5@3 f#4@2 ~@10 e4@3",
  J: "f#4 ~@5 f#5@3 f#4@2 ~@10 e4@2 ~ f#4 ~@5 f#5@2 ~ f#4 ~@5 b4@2 ~ a#4@3 e4@3",
  K: "f#4 ~@5 f#5@3 f#4@2 ~@10 e4@2 ~ f#4 ~@5 f#5@3 f#4@3 ~@9 e4@2 ~",
  L: "f#4 ~@5 f#5@3 f#4 ~@11 e4@3 f#4 ~@5 f#5@3 f#4 ~@5 b4@2 ~ a#4@3 e4@3",
  M: "f#4 ~@5 f#5@2 ~ f#4@4 ~@8 e4@3 f#4 ~@5 f#5@3 f#4@3 ~@9 e4@3",
  N: "f#4 ~@5 f#5@3 f#4@2 ~@10 e4@2 ~ f#4 ~@5 f#5@3 f#4 ~@5 b4@2 ~ a#4@2 ~ e4@3",
  O: "f#4 ~@5 f#5@3 f#4@2 ~@10 e4@3 f#4 ~@5 f#5@3 f#4@2 ~@10 e4@3",
  P: "[f#4 ~@5 f#5@3 f#4@2 ~@10 e4@2 ~ f#4 ~@5 f#5@3 f#4@3 [f#3,a#3,c#4]@16 ~@44]/2", Q: "~ [f#4,a#4,c#5]@41 ~@6",
  R: "[g#4,c#5,f5]@43 ~@5", S: "~ [f#4,a#4,d#5]@42 ~@5", T: "~ a4@17 ~@4 [b3,e4,g#4]@26, [c#4,e4]@5 ~@7",
  U: "~ [a#3,c#4]@42 [f#5,f#6]@2 ~@3, f#4@43 d#6 ~@4", V: "~@37 [f#5,f#6]@2 ~@9, ~@37 [c#6,d#6] ~@10",
  W: "[f#4 ~@5 f#5@3 f#4@2 ~@11 e4@2 ~ f#4 ~@5 f#5@3 f#4 ~@5 b4@2 ~ a#4@2 ~ e4@3 f#4 ~@5 f#5@3 f#4@2 ~@10 e4@3 f#4 ~@5 f#5@3 f#4@2 ~@10 e4@3 f#4 ~@5 f#5@3 f#4@2 ~@10 e4@2 ~ f#4 ~@5 f#5@3 f#4 ~@5 b4@2 ~ a#4@2 ~ e4@4 ~@46]/4",
})).s("gm_string_ensemble_1").gain(0.26).pan(0.3)

// chords · glockenspiel
const glockenspiel = note("<~@12 A ~@7 B ~@15 C ~@5 C ~@8 D@2 ~@7 E ~@5 E ~ E ~@7 F ~@7>".pickRestart({
  A: "g#6@2 ~@13 d#6@22 ~@11, [f#5,g#5,a#5]@37 ~@11, c#6@6 c#6@7 c#6@24 ~@11, ~@2 d#6@6 d#6@7 ~@33, ~@3 g#6@6 ~ g#6@27 ~@11", // F#
  B: "~@15 d#6@22 ~@11, [f#5,a#5]@37 ~@11, c#6@4 g#6@4 d#6@5 c#6@24 ~@11, ~ g#5@37 ~@10, ~ g#6 d#6@4 c#6@4 g#6@27 ~@11", // F#
  C: "~@15 d#6@22 ~@11, ~ [f#5,g#5,a#5]@37 ~@10, ~ c#6@5 c#6@7 c#6@24 ~@11, ~ g#6@3 g#6@6 g#6@27 ~@11, ~@2 d#6@6 d#6@7 ~@33", // F#
  D: "[~@63 d#6@22 ~@11, ~@24 a#5@25 [f#5,g#5,a#5]@37 ~@10, ~@24 g#5@12 d6@5 d6@8 [c#6,g#6] d#6@2 g#6@2 c#6@2 d#6@2 g#6@3 c#6@24 ~@11, ~@24 d6@3 [a6,c7]@6 a6@52 ~@11, ~@26 f6@3 d6@4 [b6,c7]@6 c7@5 c7@41 ~@11]/2", // F# C#5 Am Cmaj7
  E: "~@15 d#6@22 ~@11, ~ [f#5,g#5,a#5]@37 ~@10, ~ c#6@6 c#6@7 c#6@24 ~@10, ~ g#6@3 g#6@6 g#6@27 ~@11, ~@2 d#6@6 d#6@7 ~@33", // F#
  F: "~@8 d#6@11 ~@5, ~ [f#5,g#5,a#5]@37 ~@10, ~ c#6@6 c#6@7 c#6@24 ~@10, ~ g#6@3 g#6@6 g#6@27 ~@11, ~@2 d#6@6 ~ d#6@7 ~@32", // F#
})).s("gm_glockenspiel").gain(0.14)

// chords · glockenspiel · soft notes
const glockenspiel_soft = note("<~@51 A@2 ~@31>".pickRestart({
  A: "[~@37 f6@4 ~@5 b6@39 ~@11, ~@26 g6@5 f6@6 g#5@4 b6@2 f6@43 ~@10, ~@27 b6@5 g6@54 ~@10, ~@14 d#6@11 ~@23, ~@34 c#6@15 ~@47]/2",
})).s("gm_glockenspiel").gain(0.07)

// other · trumpet
const trumpet = note("<~@52 A ~ A ~ A ~ A ~@9 B ~@3 C ~@3 D ~ D ~ D ~ D ~>".pickRestart({
  A: "c#5@3 e5@2 ~ f#5@2 ~ c#5@2 ~ e5@2 ~ f#5@2 ~ c#5 ~@2 e5@2 ~ f#5@2 ~@22",
  B: "c#5@2 ~ e5@2 ~ f#5 ~@2 c#5 ~@2 e5 ~@2 f#5 ~@32", C: "c#5 ~@2 e5@2 ~ f#5 ~@2 c#5 ~@2 e5 ~@2 f#5 ~@32",
  D: "~ c#5@3 e5@2 ~ f#5@2 ~ c#5@2 ~ e5@2 ~ f#5@2 ~ c#5 ~@2 e5@2 ~ f#5@2 ~@21",
})).s("gm_trumpet").gain(0.13).pan(0.7)

// other · pad poly
const pad_poly = note(`<
  ~@7 A B@2 C@2 ~@15 D E ~ E ~ F ~ F ~@6 G H@2 ~@2 E ~@3 E ~@2 I ~ I J@2 K L ~@2 E ~@3 M ~ N ~ F ~ F ~ O P ~@8
>`.pickRestart({
  A: "~@33 f#2@3 f#3@4 f#2@6 ~@2, ~@36 d#3 ~@11",
  B: "[~@21 g#4@6 f#4@6 f4@6 c#4@6 f4@23 ~ d#4@23 ~@4, ~@18 a#4@5 ~@73]/2",
  C: "[~@18 a#4@3 g#4@6 f#4@5 ~ f4@6 c#4@6 d#4@40 ~@11]/2", D: "~@33 f#2@3 f#3@8 ~@4, ~@36 d#3 ~@11",
  E: "~@6 f#4@5 ~@37", F: "~@6 f#5@5 ~@37", G: "~@42 c#5@3 d#5@2 ~",
  H: "[f#5@20 ~ a5@5 ~ g#5@12 e5@5 ~ g#5@24 f#5@23 ~@4]/2", I: "~@6 f#5@5 ~@37, ~@3 f#4@8 ~@37",
  J: "[c#5@20 ~ b4@6 a4@5 ~ g#4@6 e4@6 g#4@24 f#4@15 ~@12]/2",
  K: "~@6 f#5@6 ~@18 f#5@5 ~@13, ~@3 f#4@8 ~@16 f#4@8 ~@13", L: "~@6 f#5@5 ~@19 f#5@11 ~@7", M: "~@3 f#4@2 ~@19",
  N: "~ f#5 ~@6", O: "~@3 f#5@2 ~@19", P: "~@3 f#5",
})).s("gm_pad_poly").gain(0.28)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@4 A B C D E F A B ~@4 G H I J K L M N O H P Q R S T U V W X Y Z AA M N O H P Q R S T U V W X Y ~@8 R S T U V W X Y R
  S T U V AB AC AD AE@2 AF AG AH@2 AI@2
>`.pickRestart({
  A: "[f#4,b4,d#5]@6 ~@3 [f#4,b4,d#5] ~@5 [f#4,b4,d#5] ~@8 [f4,a#4,c#5]@7 ~@2 [f4,a#4,c#5] ~@5 [f4,a#4,c#5] ~@8", // B A#m
  B: "[g#4,a#4,d#5]@9 [g#4,a#4,d#5] ~@5 [g#4,a#4,d#5] ~@8 d#5@18 ~@6, ~@7 [g4,a#4]@6 ~@3", // G#sus2 Gm
  C: "[f#4,b4,d#5]@7 ~@2 [f#4,b4,d#5]@2 ~@4 [f#4,b4] ~@8 [f4,a#4,c#5]@8 ~ [f4,a#4,c#5]@2 ~@4 [f4,a#4,c#5] ~@8", // B B5 A#m
  D: "[g#4,a#4,d#5]@6 ~@3 [g#4,a#4,d#5]@2 ~@4 [g#4,a#4,d#5] ~@5 [g4,a#4,d#5]@15 ~@12", // G#sus2 D#
  E: "[f#4,b4,d#5]@8 ~ [f#4,b4,d#5]@2 ~@4 [f#4,b4,d#5] ~@5 [f4,a#4,c#5]@10 ~@2 [a#4,c#5]@4 ~@2 [f4,a#4,c#5]@2 ~@7, ~@33 f4@2 ~@13", // B A#m
  F: "[g#4,a#4,d#5]@8 ~ [g#4,a#4,d#5]@2 ~@4 [g#4,a#4,d#5] ~@5 [g4,a#4,d#5]@19 ~@8", // G#sus2 D#
  G: "~@5 g#3@9 ~@2, c#3@7 ~, ~ g#3@4 ~@11, ~ c#4@6 ~, ~@3 f4@11 ~@2",
  H: "~@15 d#4@32 ~, d#3@47 ~, ~ d#4@4 ~@11, ~@6 f#4@41 ~, ~@9 a#4@38 ~",
  I: "~@5 f#4@3 ~@2 f4@6, g#3@23 ~@4 c#4@21, ~@3 b3@20 ~ a#3@24, ~@9 g#4@14 ~@25",
  J: "~@5 d#4@6 ~@5, g#3@11 ~@5, ~ b3@10 ~@5, ~@2 d#4@3 ~@11, ~@3 g#4@8 ~@5",
  K: "~@15 d#4@31 ~@2, d#3@23 ~, ~ d#4@4 ~@11, ~@3 f#4@20 ~, ~@9 a#4@37 ~@2",
  L: "~@15 b3@32 ~, g#3@47 ~, ~ b3@4 ~@11, ~@6 d#4@41 ~, ~@9 g#4@38 ~",
  M: "~@15 g#3@32 ~, c#3@47 ~, ~ g#3@4 ~@11, ~@3 f4@6 f4@38 ~, ~@6 c#4@41 ~",
  N: "~@5 a#3@8 ~@3, f#3@13 ~@3, ~ a#3@4 ~@11, ~@2 c#4@11 ~@3, ~@3 f#4@10 ~@3",
  O: "~@15 g#3@32 ~, c#3@47 ~, ~ g#3@4 ~@11, ~@6 c#4@41 ~, ~@9 f4@38 ~",
  P: "~@5 g#4@3 ~@3 e4@5, a3@23 ~ [g#3,f#4]@24, ~@3 c#4@20 ~@7 b3@18, ~@6 e4@17 ~@25, ~@9 a4@14 ~@25", // G#7
  Q: "~@15 a#3@26 ~@7, f#3@7 ~, ~ a#3@4 ~@11, ~@6 c#4@35 ~@7, ~@9 f#4@32 ~@7",
  R: "[a3,c#4,e4]@7 ~@2 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@8 [a3,c#4,e4]@7 ~@2 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@8", // A
  S: "[a#3,c#4,f#4]@7 ~@2 [a#3,c#4,f#4] ~@5 [a#3,c#4,f#4] ~@8 [a#3,c#4,f#4]@7 ~@2 [a#3,c#4] ~@5 [a#3,c#4,f#4] ~@8", // F# A#m F#
  T: "[a3,c#4,e4]@7 ~@2 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@8 [a3,c#4,e4]@8 ~ [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@8", // A
  U: "[a#3,c#4,f#4]@7 ~@2 [a#3,c#4] ~@5 [a#3,c#4,f#4] ~@8 [a#3,c#4,f#4]@6 ~@3 [a#3,c#4,f#4] ~@5 [a#3,c#4,f#4] ~@8", // F# A#m F#
  V: "[a3,c#4,e4]@6 ~@3 [a3,c#4,e4]@2 ~@4 [a3,c#4,e4] ~@5 [a3,c#4,f#4]@2 ~@4 [a3,c#4,e4]@3 ~@3 [a3,c#4,f#4]@2 ~@4 [a3,c#4,e4]@2 ~@7", // A F#m A F#m A
  W: "[a#3,c#4,f#4] ~@8 [a#3,c#4,f#4] ~@5 [a#3,c#4,f#4] ~@8 [a#3,c#4,f#4]@5 ~@4 [a#3,c#4,f#4]@2 ~@4 [a#3,c#4]@2 ~@7", // F# A#m
  X: "[a3,c#4,e4]@6 ~@3 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@5 [b3,c#4,e4]@2 ~@4 [a3,c#4]@4 ~@2 [b3,c#4,e4]@7 ~@8, ~@27 e4 ~@20", // A C#m7 A C#m7
  Y: "[a#3,c#4,f#4]@7 ~@2 [a#3,c#4,f#4] ~@5 [a#3,c#4,f#4] ~@8 [a#3,c#4,f#4]@6 ~@3 [a#3,c#4,f#4] ~@5 [a#3,c#4,f#4] ~@8", // F#
  Z: "~@15 a#3@32 ~, d#3@47 ~, ~ a#3@4 ~@11, ~@6 c#4@41 ~, ~@9 f#4@38 ~",
  AA: "~@15 b3@23 ~@10, g#3@13 ~@3, ~ b3@4 ~@11, ~@6 d#4@29 ~@13, ~@9 g#4@26 ~@13",
  AB: "[a#3,c#4,f#4] ~@8 [a#3,c#4,f#4] ~@6 [a#3,c#4,f#4] ~@8 [a#3,c#4,f#4]@5 ~@4 [a#3,c#4,f#4]@2 ~@4 [a#3,c#4]@2 ~@6", // F# A#m
  AC: "~ [a3,c#4,e4]@6 ~@3 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@5 [b3,c#4,e4]@2 ~@4 [a3,c#4]@4 ~@2 [b3,c#4,e4]@7 ~@7, ~@28 e4 ~@19", // A C#m7 A C#m7
  AD: "~ [a#3,c#4,f#4]@7 ~@2 [a#3,c#4,f#4] ~@5 [a#3,c#4,f#4] ~@8 [a#3,c#4,f#4]@6 ~@3 [a#3,c#4,f#4] ~@5 [a#3,c#4,f#4] ~@7", // F#
  AE: "[~@7 e4@6 f#4@12 ~@3 e4@6 ~@21 e4@6 f#4@12 ~@3 e4@6 f#4@14, ~ [a3,c#4]@17 ~@7 [g#3,b3]@21 ~@3 f#3@39 ~@8, ~@34 f#4@21 ~@41, ~@49 a#3@23 ~ a#3@17 ~@6]/2", // A G#m
  AF: "~@7 e4@6 f#4@12 ~@3 e4@6 f#4@14, ~ [a3,c#4]@15 ~@9 [g#3,b3]@21 ~@2", // A G#m
  AG: "~@7 e4@6 f#4@12 ~@3 e4@6 f#4@14, ~ f#3@38 ~@9, ~ a#3@20 ~@4 a#3@16 ~@7",
  AH: "[~@7 e4@6 f#4@12 ~@3 e4@6 ~@21 e4@6 f#4@12 ~@3 e4@6 f#4@14, ~ [a3,c#4]@15 ~@9 [g#3,b3]@22 ~@2 f#3@38 ~@9, ~@34 f#4@21 ~@41, ~@49 a#3@20 ~@4 a#3@15 ~@8]/2", // A G#m
  AI: "[~@7 e4@6 f#4@12 ~@3 e4@6 ~@21 e4@6 f#4@32 ~@3, ~ [a3,c#4]@16 ~@8 [g#3,b3]@21 ~@3 [f#3,a#3]@44 ~@3, ~@17 f#4@10 ~@21]/2", // A G#m F#
})).s("gm_acoustic_guitar_steel").gain(0.16)

// other · synth brass 1
const synth_brass_1 = note("<~@52 A ~ B ~ C D B ~@9 E ~ F ~ G ~ H ~@9>".pickRestart({
  A: "~@27 e5@2 ~ f#5 ~@2 c#5 ~@2 e5@2 ~ f#5 ~@8", B: "~@27 e5@2 ~ f#5@2 ~ c#5 ~@2 e5@2 ~ f#5 ~@8",
  C: "~@27 e5@2 ~ f#5 ~@2 c#5 ~@2 e5 ~@2 f#5 ~@8", D: "~@21 [e5,f#5] ~@5 [c#5,e5] ~@5 [g#4,c#5] ~@14",
  E: "~@28 e5@2 f#5 ~@3 c#5 ~@2 e5 ~@2 f#5 ~@7", F: "~@28 e5@2 f#5@2 ~@2 c#5 ~@2 e5 ~ f#5@2 ~@7",
  G: "~@28 e5@2 ~ f#5 ~@2 c#5 ~@2 e5 ~@2 f#5 ~@7", H: "~@27 e5@2 ~ f#5@2 ~@2 c#5 ~@2 e5@2 ~ f#5 ~@7",
})).s("gm_synth_brass_1").gain(0.26).pan(0.2)

// chords · tremolo strings
const tremolo_strings = note("<~@19 A B C D E F G H I ~@56>".pickRestart({
  A: "~ f#3@39 ~@8, [b3,d#4]@5 ~", B: "~ f#3@41 ~@6, [a#3,d#4]@41 ~@7", C: "~ d#4@41 ~@6, [b3,g#4]@7 ~",
  D: "[g#3,c#4,f4]@41 ~@7", E: "~ [f#3,a#3,c#4]@38 ~@9", F: "[g#3,c#4,f4]@11 ~", G: "~ f#3@38 ~@9, [a#3,d#4]@19 ~@5",
  H: "[a3,c#4,e4]@10 ~ e4@13, ~@21 [g#3,b3]@25 ~@2", I: "[f#3,a#3,c#4]",
})).s("gm_tremolo_strings").gain(0.12)

// other · pad poly
const pad_poly_2 = note("<~@77 [~@12 f#4 g#4 a4 b4] [c#5@21 b4@6 ~ a4@6 g#4@6 e4@7 ~] [~ g#4@21 f#4@26] ~@4>")
  .s("gm_pad_poly").gain(0.13)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C A B A B A B A D A
  B A B A B A E A B A B A F G H ~@8
>`.pickRestart({
  A: "x ~@6 x ~ x!2 ~@4 x", B: "x ~@6 x ~ x!2 ~@5", C: "x ~@6 x ~@2 x!2 ~@4", D: "x", E: "x ~@6 x ~@2 x ~@5",
  F: "x ~@21 x ~@5 x ~@2 x ~@16", G: "~ x ~@20 x ~@5 x ~@2 x ~@14 x ~", H: "~ x ~@20 x ~@8 x ~@16",
})).gain(0.41)

// drums · rim
const rim = s("rim").struct("<~@12 A@15 B ~@8 A@7 B ~@7 B A@7 ~@25>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.41)

// drums · snare
const snare = s("sd").struct("<~@3 A B@8 ~@15 A B@8 ~@7 A B@7 C ~@7 D B@7 C B@5 E@2 F ~@8>".pickRestart({
// … 67 more lines

More by Mariah Carey