Strudelify

Breakdown

Mariah Carey

KeyE majorTempo68 bpm
0:00/0:00
// Breakdown — Mariah Carey
// 68 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 80 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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 · electric bass finger · "untitled"
const bass = note(`<
  A B A C A D E F A B A C A D E F A B A C A D E F ~ A B A C E D E F A B A C E D E F ~ A B E C E D E F A B E C A B E C E
  G E F A B E C E G E F H B E C E G E C H ~
>`.pickRestart({
  A: "f#1 g#1", B: "a1@15 ~", C: "~ a1@44 ~@3", D: "a1@23 ~", E: "f#1@25 g#1@23", F: "a1@11 ~", G: "~ a1@46 ~",
  H: "~ f#1@23 g#1@24",
})).s("gm_electric_bass_finger").gain(0.26)

// chords · piano
const piano = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D ~ A B C D A B C D A B C D A B C D ~ A B C D A B C D A B C D A B C D A
  B C D A B C D A B C D E F G H E F G H E ~
>`.pickRestart({
  A: "[f#2,a3,c#4,e4]@23 ~ [g#2,f#3,d#4]@23 ~, ~@24 b3@19 ~@5", B: "[a2,g#3,c#4,e4]@43 ~@5",
  C: "[a3,c#4]@7 ~@2 [a3,c#4]@9 [c#4,e4]@2 ~@4 [g#2,f#3,d#4]@21 ~@3, f#2@7 ~@9, e4@4 ~@5 f#4@4 ~@11 b3@17 ~@7", // A C#m G#7
  D: "[g#3,c#4]@8 ~ [g#3,c#4,d#4]@4 ~@5 [e3,g#3,c#4]@22 ~@8, a2@7 ~, e4@5 ~@43", // C#5 G#sus4 C#m
  E: "~ [f#2,a3,c#4,e4]@23 ~ [g#2,f#3,d#4]@23, ~@25 b3@19 ~@4", F: "~ [a2,g#3,c#4,e4]@43 ~@4",
  G: "~ [a3,c#4]@7 ~@2 [a3,c#4]@9 [c#4,e4]@2 ~@4 [g#2,f#3,d#4]@21 ~@2, ~ f#2@21 ~@26, ~ e4@4 ~@5 f#4@4 ~@11 b3@17 ~@6", // A C#m G#7
  H: "~ [g#3,c#4]@8 ~ [g#3,c#4,d#4]@4 ~@5 [e3,g#3,c#4]@22 ~@7, ~ a2@42 ~@5, ~ e4@5 ~@42", // C#5 G#sus4 C#m
})).s("gm_piano").gain(0.2)

// other · flute
const flute = note(`<
  ~@8 A B C D E F G H@3 I J K L@2 M@2 N O@3 P Q R S@2 T U@2 V@3 W@2 X Y Z AA ~@8 AB AC I AD K AE@2 AF AG AH AI AJ K AE@2
  AK@2 AL AM@2 AN AO@2 AP@2 AQ
>`.pickRestart({
  A: "~@9 b3@2 ~ b3@3 c#4@3 e4@3 f#4@6 ~@3 f#4@18", B: "~@9 b3 ~@2 b3@3 ~@3 e4@3 f#4@6 g#4@3 ~@12 b4@2 ~ e4@2 ~",
  C: "f#4@2 ~ g#4@2 ~ b4@2 ~ g#4@6 f#4@2 ~ g#4@21 ~@3 b4@2 ~ e4 ~@2",
  D: "b3@3 c#4@3 e4@2 ~ f#4@6 g#4@3 f#4@23 ~@4 e4@3",
  E: "b4@3 a4@3 g#4@3 f#4@9 b4@3 e4@3 f#4@3 g#4@3 b4@3 g#4@7 ~@2 e4@3 f#4@3",
  F: "g#4@3 f#4@3 e4@3 c#4@6 ~@3 e4@3 f#4@3 g#4@3 a4@2 ~ b4@3 g#4@6 f#4@3 g#4@6",
  G: "~@6 c#5@3 b4@4 ~@2 e4@3 f#4@7 ~@5 c#5@3 b4@3 ~@3 e4@3 f#4@6",
  H: "[~@6 c#5@3 b4@4 ~@2 e4@3 ~@3 b4@6 g#4@3 f#4@3 b4@5 g#4@3 ~@4 c#5@6 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e5@3 d#5@3 f#5@3 c#5@3 b4@3 [e4,g#4]@3 a4@3 g#4@3 a4@3 g#4@3 f#4 ~@5 b3 ~ b3 a4@3 b3 ~@2 [b3,f#4]@3 b3 ~@5 c#4@3 ~@6 e4@3 f#4@3 g#4@3 a4@3 g#4@3 f#4@3, ~@18 f#4@8 ~@16 f#4@6 ~@5 b4@10 b3 ~@2 f#4@9 ~@6 f#4@5 ~@16 b3 ~@8 e4@7 ~@2 b3@18 ~@6, ~@84 b4@19 ~@11 f#4@10 ~@20]/3", // E B5
  I: "~@3 b4@6 a4@3 g#4@2 ~ a4@3 b4 ~@2 c#5@4 ~@2 b4 ~@2 b4@3 a4@3 g#4@3 a4@2 ~ b4 ~@2 c#5@3",
  J: "b4@2 ~@2 b4!3 ~@2 b4 ~@2 b4@2 ~ e4@2 ~ b4@4 ~@3 b4 ~ b4!2 ~ b4 ~@2 a4 ~@2 g#4 ~@2 a4@2 ~ b4@3 f#4@3",
  K: "~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4 ~@2 b3@7 ~@2 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@6",
  L: "[~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@4 ~@5 b3@2 ~ b4@2 ~ a4@2 ~ g#4@2 ~ a4 ~@2 b4 ~@2 f#4@5 ~ e4@3 b4@3 a4@3 g#4@3 a4@3 b4 ~@2 c#5@4 ~@2 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@3]/2",
  M: "[~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@4 ~@2 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@6 b4@25 ~@11 b3@3 e4@3 d#4@3]/2",
  N: "b3@6 c#4@4 b3@8 ~@3 b3@3 e4@3 b3@3 f#4@3 b3@2 g#4@3 c#4@3 ~ b3@6",
  O: "[~@3 b3!2 ~ b3 ~@2 b3 ~@2 b3@3 c#4@3 b3@7 ~@3 b3!2 ~ b3@3 b3 ~@2 e4@2 d#4@3 e4@3 f#4@5 ~ c#4@4 ~@11 g#4@3 b4@6 e4@3 g#4@3 b4@6 e4@3 g#4@3 b4@6 e4@3 g#4@3 c#5@6 b4@13 ~@11 b3@3 f#4@3 g#4@3, ~@55 b3@13 ~@76, ~@16 e4 ~@19]/3",
  P: "f#4@3 e4@3 b3@6 ~@3 b3@3 f#4@3 g#4@3 f#4@3 e4@3 b3@5 ~@4 b3@3 ~@6",
  Q: "f#4@3 e4@3 b3@5 ~@4 b3@2 f#4@3 g#4@3 f#4@3 ~ e4@2 ~ b3@9 c#4@3 e4@4 ~@2",
  R: "f#4@3 g#4@3 f#4@9 b3@3 c#4@3 f#4@6 g#4@3 f#4@17 ~",
  S: "[~@3 e5@3 d#5@3 b4@6 g#4@3 a4@3 b4@6 g#4@3 a4@3 b4@6 g#4@3 a4@3 c#5@6 b3 ~ b3!2 ~@2 b3 ~@2 e5@3 d#5@3 f#5@3 c#5@5 ~@4 e4@2 ~@4 g#4@3 a4@3 g#4@3 f#4 ~@2, ~@51 b4@9 b3 ~@2 b3 ~@2 f#4@9 b4@20 ~, ~@81 f#4@5 ~@10]/2",
  T: "~@2 b3 b3@2 b3 b4@3 b3 ~@2 g#4@3 f#4@3 ~ e4@2 ~@4 c#4@5 ~@3 f#4@3 g#4@3 a4@3 g#4@3 f#4@3, ~@6 b3 ~@2 a4@5 ~@4 f#4@3 f#4@7 ~@2 e4@3 ~@15, ~@12 b3@2 ~ b3 ~@15 b3@15 ~@2",
  U: "[~@3 b4@6 a4@3 g#4@2 ~ a4@3 b4 ~@2 c#5@3 b4@3 b4 ~@2 b4@3 a4@3 ~@3 a4@2 ~ b4 ~@5 b4@2 ~@2 b4!3 ~@2 b4 ~@2 b4@2 ~ e4@2 ~ b4@4 ~@3 b4@2 b4!2 ~@4 a4 ~@2 g#4 ~@2 a4@2 ~ b4@3 f#4@3, ~@27 c#5@7 ~@2 g#4@3 ~@57, ~@37 c#5@8 c#5@27 ~@6 b4@12 ~@6]/2",
  V: "[~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4 ~@2 b3@6 c#5@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@6 ~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@4 ~@5 b3@2 ~ b4@2 ~ a4@2 ~ g#4@2 ~ a4 ~@2 b4 ~@5 b4@3 e4@3 b4@3 ~ b4@2 ~@3 a4@3 b4 ~@2 c#5@3 b4@3 b4@3 ~@3 a4@3 g#4@3 a4@3 b4@3 c#5@3, ~@27 e5@6 ~ b4@37 ~@22 f#4@5 ~ c#5@6 a4@3 g#4@3 ~@33, ~@109 c#5@8 ~@9 b4@12 ~@6]/3",
  W: "[~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@3 f#5@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@3 ~@7 g#4@6 ~@3 g#4@12 ~@23, ~@28 e5@5 ~@3 b4@6 ~@3 c#5@6 b4@25 ~@20, ~@49 f#4@4 ~@43]/2",
  X: "~@6 b3@2 ~ b3 ~@2 b3@2 ~@2 c#4@2 e4@2 ~ b3@27", Y: "~@6 b3@2 ~ b3 ~@2 b3@2 ~ c#4@2 ~ e4 ~@2 b3@26 ~",
  Z: "~@7 b3@2 ~ b3 ~@2 b3@2 ~ c#4@2 ~ e4@2 ~ b3@25 ~", AA: "~@6 b3@2 ~ b3 ~@2 b3@2 ~ c#4@3 e4@2 ~ b3@12 ~@15",
  AB: "~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 f#4@9 ~@3 e4@2 ~@4 g#4@3 a4@3 g#4@3 f#4 ~@2, ~@33 f#4@5 ~@10",
  AC: "~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3@2 ~ b3 ~@2 f#4@10 ~@2 e4@3 f#4@3 g#4@3 a4@3 g#4@3 f#4@3",
  AD: "b4@2 ~@2 b4!2 ~ b4 ~@2 b4 ~@2 b4@2 ~ e4@2 ~ b4@4 ~@2 b4 ~ b4 ~ b4!2 ~@2 a4 ~@2 g#4 ~@2 a4@2 ~ b4@3 f#4@3",
  AE: "[~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@4 ~@5 b3@2 ~ b4@2 ~ a4@2 ~ g#4@2 ~ a4 ~@2 b4 ~@2 f#4@5 ~ e4@3 b4@3 a4@3 g#4@3 a4@3 b4 ~@2 c#5@4 ~@3 b4 ~ b4@3 ~ a4@2 g#4@3 a4@3 b4@2 ~ c#5@3]/2",
  AF: "~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~@2 c#5@3 b4@3 b4 ~ b4@3 a4@3 g#4@3 a4@2 ~ b4@2 ~ c#5@3, ~@29 g#4@5 ~@2 b4@5 g#4@3 a4@4",
  AG: "~@3 b4@2 b3!2 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 f#4@9 ~@3 e4@2 ~@4 g#4@2 ~ a4@3 g#4@3 f#4 ~@2, c#5@6 b4@21 ~@2 e5@4 ~ d#5@4 f#5@10, ~@3 b3 ~@29 f#4@5 ~@10",
  AH: "~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3@2 ~ b3 ~@2 f#4@10 ~@2 e4@3 f#4@3 g#4@3 a4@3 g#4@3 f#4@3, ~ c#5@6 b4@27 ~@14",
  AI: "~@3 b4@6 a4@3 g#4@2 ~ a4@3 b4 ~@3 b3@3 ~@2 b4 ~@2 b4@3 ~@6 a4@2 ~ b4 ~@2 [b3,c#5]@3, ~@21 c#5@4 c#4@8 a4@3 g#4@3 ~@9, ~@34 b3@3 c#4@8 ~@3", // Bsus2
  AJ: "~@4 b4!2 ~ b4 ~@2 b4 ~@2 b4@2 ~ e4@2 ~ b4@4 ~@2 b4 ~ b4 ~ b4!2 ~@2 a4 ~@2 g#4 ~@2 a4@2 ~ b4@3 f#4@3, b4 ~@23, ~ c#4@6 b3@29 ~@12",
  AK: "[~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~@2 c#5@4 ~@2 b4@2 [b4,e5]@3 ~@3 g#4@3 a4@3 b4@2 ~ c#5@7 b3!2 ~ b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 f#4@9 ~@3 [e4,e5]@3 ~@3 g#4@3 a4@3 g#4@3 f#4 ~, ~@33 a4@3 ~@16 b4@16 ~@14 [f#4,f#5]@12 ~@2, ~@17 f#5@17 ~@14]/2", // E5 E F#
  AL: "~@4 b3!2 ~ b3 ~@2 b3 ~@2 b3@2 ~ b3 ~@2 [f#4,g#5]@3 f#5@8 ~ e4@2 ~@4 g#4@3 a4@3 g#4@3 f#4@2, ~@6 g#5@3 f#5@10 ~@11 g#5@2 ~ a5@3 g#5@4 f#5 ~@7, ~@17 f#4@2 ~@5", // F#sus2
  AM: "[~@4 b4@6 a4@3 g#4@2 ~ a4@3 b4 ~@2 c#5@4 ~@2 b4@2 ~ b4@3 a4@3 g#4@3 a4@2 ~ b4 ~@2 c#5@3 b4 ~@2 b4!2 ~ b4 ~@2 b4 ~@2 b4@2 ~ e4@2 ~ [b4,g#5]@3 ~@3 b4 ~ b4 ~ b4!2 g#5@2 a4 ~@2 g#4 ~@2 a4@2 ~ b4@3 f#4@3, ~@30 e5@3 ~ f#5@10 ~@10 g#5@3 ~ f#5@9 ~@3 f#5@9 ~@3 f#5@11 ~@3]/2", // E
  AN: "~@4 b3!2 ~ e5@3 b3 ~@2 b3 ~@2 e4 ~@2 b3@6 ~@3 b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@5, ~@7 b3 ~@2 f#5@12 ~@7 b3@2 ~@17, ~@30 g#5@3 f#5@11 ~@4",
  AO: "[~@4 b3!2 ~ b3 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ [b3,g#5]@3 f#5@6 b3@2 ~ [b4,g#5]@3 a4@2 ~ g#4@2 ~ a4 ~@2 b4 ~@2 f#4@5 e4@3 [b4,e5]@3 ~@3 g#4@3 a4@3 b4 ~@2 c#5@4 ~@3 b4@2 ~ g#5@3 a4@3 g#4@2 a4@3 b4@2 ~ c#5@3, ~@6 e5@3 ~ f#5@9 ~@15 f#5@10 ~@13 a4@3 ~@18 b4@3 ~@15, ~@29 f#5@6 ~@6 f#5@5 ~@2]/2", // E E5
  AP: "[~@3 b4 ~@2 [b4,e5]@3 a4@3 g#4@3 a4@3 ~ g#5@2 ~ c#5@4 ~@2 b4 ~@2 [b4,g#5]@2 a4@3 g#4@3 a4@3 b4@2 ~ c#5@7 ~@2 e5@3 ~@24 f#5@12 ~@3, ~@9 f#5@9 b4@2 ~ f#5@9 ~@22 b4@17 ~@27]/2", // E5 E
  AQ: "~@18 g#5@4 f#5@9 ~@17",
})).s("gm_flute").gain(0.48)

// other · flute · soft notes
const flute_soft = note("<~@8 A B ~@7 C ~@11 D E ~@4 F ~ G ~@2 H I ~@27 J@2 K@2 L M N O P Q R>".pickRestart({
  A: "~@9 g#4 ~@6", B: "~@15 c#4@3 ~@12 f#4@11 ~@7", C: "~@9 g#4 ~@38", D: "~@14 f#4 g#4", E: "~@15 f#4",
  F: "~@34 b4@3 ~@11", G: "~@21 b4@4 ~@23", H: "~@33 c#5@4 ~@11", I: "~@10 f#4@3 ~@12 e4@23",
  J: "[~@25 [b3,b4]@2 ~ b3@2 e4@3 ~ f#4@33 ~@6 [b3,b4] ~@2 [b3,b4]@3 ~@17]/2", // B
  K: "[~ [b3,b4] ~ b4@2 ~ g#4@3 f#4@9 ~ g#4@3 f#4@8 g#4@2 ~ a4@3 g#4 ~@3 f#4 ~ [c#4,c#5]@3 [b3,b4]@5 ~@23 [b3,b4]@2 ~ b3@2 e4@3 ~ f#4@10 ~@4, ~@3 b3 ~@92]/2", // B C# B
  L: "~ b3 ~ b3@2 ~ g#4@3 ~ f#4@9 g#4@3 f#4@9 g#4@3 f#4@11 ~@3, ~@3 b4 ~@44",
  M: "~ [b3,b4]@2 b4@3 ~ e4@3 f#4@12 ~@3 [b3,b4] ~@2 b4@2 g#4@3 f#4@11 ~@4, ~@3 b3 ~@44", // B
  N: "~ [b3,b4] ~@2 b4@2 e4@3 ~ f#4@9 g#4@3 f#4@9 g#4@3 f#4@10 ~@4", // B
  O: "~ [b3,b4] ~ [b3,b4]@2 ~ e4@3 ~ f#4@12 ~@3 [b3,b4] ~@2 b3@2 ~ g#4@3 f#4@10 ~@4", // B
  P: "~ [b3,b4]@2 ~ [b3,b4]@2 e4@3 f#4@9 ~ g#4@2 f#4@9 ~ g#4@2 [f#4,f#5]@12 ~@3", // B F#
  Q: "[b3,b4]@2 ~ b3@3 e4@3 [f#4,f#5]@12 ~@7 [b3,b4] ~@2 [g#4,g#5]@2 f#4@12 ~@3, ~@3 b4 ~@44", // B F# B G#
  R: "~@18 g#4@4 f#4@9 ~@17",
})).s("gm_flute").gain(0.24)

// chords · glockenspiel
const glockenspiel = note("<~@7 A@2 ~@6 B@2 ~@7 C@2 ~@6 D@2 ~@7 E ~@7 F@2 ~@6 G@2 ~@6 H@2 ~@6 I@2 ~@5>".pickRestart({
  A: "[~@25 f5@2 ~@21, ~@25 e7@29 ~@42, ~@26 d7@14 a6 g6 f6 e6 d6@10 ~@42, ~@27 c7@3 a6@3 f6@2 [c6,d6]@3 c7@7 c6 b5 a5 g5@5 ~@43, ~@29 b6@2 g6@3 e6@2 b5@2 a5 b6@14 ~@43]/2", // Csus2
  B: "[~@57 d5@4 ~@35, ~@27 e7@21 [e6,f6] d6 c6 b5 a5 g5 f5@2 e5@6 ~@34, ~@28 d7@6 g6@3 e6@2 c6@3 [f5,g5]@2 d5@2 a6@16 ~@34, ~@32 b6@4 f6@4 b5@3 e5@2 b6@2 g6@15 ~@34, ~@33 a6@5 d6@3 a5@3 [c7,d7]@18 ~@34]/2", // Fmaj7 Fsus2 Csus2
  C: "[~@49 e5@3 ~@44, ~@13 f7@24 a6@6 c6 b5 a5 g5@2 f5@5 ~@43, ~@17 d7@36 ~@43, ~@22 a6@5 e6@2 c6@3 g5@3 [e5,c7]@6 e6@12 ~@43, ~@23 g6@5 d6@2 [a5,b5]@3 f5@3 b6@6 d6@11 ~@43]/2", // C Asus2
  D: "[~@78 g5@2 f5 e5 d5 c5 ~@12, ~@47 f7@5 b6@5 e6@4 [g5,a5]@5 d7 c7 b6 a6 g6 f6 e6 d6 c6@2 b5@4 ~@16, ~@48 e7@6 a6@4 d6@5 f5@14 a5@3 ~@16, ~@50 d7@5 g6@4 c6@5 [e5,f7]@16 ~@16, ~@51 c7@5 f6@4 b5@5 d5@15 ~@16]/2", // Gsus2 Fmaj7
  E: "~@37 a5@9 ~@2, ~@3 f7@27 f6 e6 d6 c6@2 b5@11 ~@2, ~@4 e7@23 a6@2 g6@17 ~@2, ~@6 d7@2 b6@3 g6@3 e6@2 d6@2 b5@5 g5 f5 c7@21 ~@2, ~@7 c7@3 a6@3 f6@4 c6@2 a5@5 d7@22 ~@2",
  F: "[~@31 a5@3 ~@14, ~@28 e7@8 f6@5 b5@5 e7@4 b6@19 ~@27, ~@29 d7@9 e6@4 a5@5 d7@4 a6 g6 f6 e6@6 b5@8 ~@28, ~@34 a6@5 d6@4 [f5,g5]@5 c7@20 ~@28, ~@35 g6@5 c6@4 [e5,f7]@24 ~@28]/2", // Fsus2 Fmaj7
  G: "[~@11 f5 ~@4, ~@32 e7@5 a6@5 d6@4 [f5,g5]@4 d7 c7 b6 a6 g6 f6 e6@2 d6 c6 b5@2 a5@2 g5@7 ~@25, ~@33 d7@5 g6@5 c6@4 g7@24 ~@25, ~@34 c7@5 f6@5 b5@4 f7@23 ~@25, ~@35 b6@6 e6@4 a5@4 e7@22 ~@25]/2", // Fsus2
  H: "[~@67 a5@4 ~@25, ~@27 g7@30 g6@2 f6 e6@2 d6@2 c6 b5@6 ~@25, ~@16 d7@3 g6@2 d6@3 [f5,g5]@2 d7@10 ~@12, ~@35 b6@4 f6@4 c6@6 [e5,f7]@23 ~@24, ~@36 a6@4 e6@7 a5@3 e7@3 c7 b6@2 a6@16 ~@24]/2", // Fsus2 Fmaj7
  I: "[~@59 d6@21 ~@16, ~@28 e7@7 g6@5 c6@4 e5@7 b6 a6@2 g6 f6@2 e6@23 ~@16, ~@29 d7@7 f6@5 b5@6 e7@33 ~@16, ~@16 b6@3 e6@2 a5@3 d7 c7@15 ~@8, ~@34 a6@5 d6@4 [f5,g5]@37 ~@16]/2", // Fsus2
})).s("gm_glockenspiel").gain(0.09).pan(0.7)

// chords · glockenspiel · soft notes
const glockenspiel_soft = note("<~@7 A@2 ~@6 B@2 ~@7 C@2 ~@6 D@2 ~@7 E ~@7 F@2 ~@6 G ~@7 H@2 ~@6 I@2 ~@5>".pickRestart({
  A: "[~@23 [f7,g7]@31 ~@42]/2", B: "[~@15 c7@7 ~@26, ~@23 g7@38 ~@35, ~@12 f7@19 ~@17]/2",
  C: "[~@25 f6@13 ~ f6@13 ~@44, ~@11 g7@41 ~@44, ~@15 e7@38 ~@43, ~@19 c7@16 ~@61, ~@21 b6@15 ~@2 g6@15 ~@43]/2",
  D: "[~@65 e7@15 ~@16, ~@41 g7@39 ~@16]/2",
  E: "~@43 e5@3 ~@2, ~ g7@45 ~@2, ~@13 b6@10 ~, ~@39 g5@7 ~@2, ~@41 f5@5 ~@2",
  F: "[~@16 b6@9 ~@8 f5 ~@14, ~@6 g7@11 ~@7, ~@13 f7@9 ~@7 c6@5 ~@14, ~@15 c7@9 ~@4 d6@6 ~@14, ~@16 g5 ~@7]/2",
  G: "~@31 f7@17, ~@28 g7@19 ~", H: "[~@46 b5@19 ~@4 g5@2 ~@25, ~@7 f7@5 ~@12, ~@15 e7@10 ~@23, ~@33 c7@20 ~@43]/2",
  I: "[~@63 b5@16 ~@17, ~@22 g7@22 g7@35 ~@17, ~@25 f7@20 ~ f7@34 ~@16, ~@31 c7@19 ~@11 c6@19 ~@16]/2",
})).s("gm_glockenspiel").gain(0.05).pan(0.7)

// other · piccolo
const piccolo = note(`<
  ~@16 A B C D E F@2 G@2 H I@3 ~@3 J@2 B C D E F@2 K@2 ~@12 A B C L E M@2 N@2 B C L E M@2 O@2 P Q@2 R S@2 T@2 ~
>`.pickRestart({
  A: "~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 f#4@9 ~@3 e4@2 ~@4 g#4@3 a4@3 g#4@3 f#4 ~@2, ~@33 f#4@5 ~@10",
  B: "~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3@2 ~ b3 ~@2 f#4@10 ~@2 e4@3 f#4@3 g#4@3 a4@3 g#4@3 f#4@3",
  C: "~@3 b4@6 a4@3 g#4@2 ~ a4@3 b4 ~@2 c#5@4 ~@2 b4 ~@2 b4@3 a4@3 g#4@3 a4@2 ~ b4 ~@2 c#5@3",
  D: "b4@2 ~@2 b4!3 ~@2 b4 ~@2 b4@2 ~ e4@2 ~ b4@4 ~@3 b4 ~ b4!2 ~ b4 ~@2 a4 ~@2 g#4 ~@2 a4@2 ~ b4@3 f#4@3",
  E: "~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4 ~@2 b3@7 ~@2 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@6",
  F: "[~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@4 ~@5 b3@2 ~ b4@2 ~ a4@2 ~ g#4@2 ~ a4 ~@2 b4 ~@2 f#4@5 ~ e4@3 b4@3 a4@3 g#4@3 a4@3 b4 ~@2 c#5@4 ~@2 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@3]/2",
  G: "[~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@4 ~@2 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@6 b4@25 ~@11 b4@3 e5@3 d#5@3]/2",
  H: "b4@6 c#5@4 b4@8 ~@3 b4@3 e5@3 b4@3 f#5@3 b4@2 g#5@3 c#5@3 ~ b4@6",
  I: "[~@3 b4!2 ~ b4 ~@2 b4 ~@2 b4@3 c#5@3 b4@7 ~@3 b4!2 ~ b4@3 b4 ~@2 e5@2 d#5@3 e5@3 f#5@5 ~ c#5@4 ~@11 g#5@3 b5@6 e5@3 g#5@3 b5@6 e5@3 g#5@3 b5@6 e5@3 g#5@3 c#6@6 b5@13 ~@20, ~@55 b4@13 ~@76, ~@16 e5 ~@19]/3",
  J: "[~@3 e4@3 d#4@3 b3@6 g#3@3 a3@3 b3@6 g#3@3 a3@3 b3@6 g#3@3 a3@3 c#4@6 b3 ~ b3 b3@3 b3@3 e4@3 b3 ~@5 c#4@5 ~@4 e4@2 ~@4 g#4@3 a4@3 g#4@3 f#4 ~@2, ~@60 b3 ~@5 f#4@9 b3@20 ~, ~@81 f#4@5 ~@10]/2",
  K: "[~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@4 ~@2 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@6 b4@25 ~@20]/2",
  L: "b4@2 ~@2 b4!2 ~ b4 ~@2 b4 ~@2 b4@2 ~ e4@2 ~ b4@4 ~@2 b4 ~ b4 ~ b4!2 ~@2 a4 ~@2 g#4 ~@2 a4@2 ~ b4@3 f#4@3",
  M: "[~@3 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@4 ~@5 b3@2 ~ b4@2 ~ a4@2 ~ g#4@2 ~ a4 ~@2 b4 ~@2 f#4@5 ~ e4@3 b4@3 a4@3 g#4@3 a4@3 b4 ~@2 c#5@4 ~@3 b4 ~ b4@3 ~ a4@2 g#4@3 a4@3 b4@2 ~ c#5@3]/2",
  N: "[~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~@2 c#5@4 ~@2 b4 ~ b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@6 b3 ~ b3!2 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 f#4@9 ~@3 e4@2 ~@4 g#4@3 a4@3 g#4@3 f#4 ~@2, ~@51 b4@17 ~@13 f#4@5 ~@10]/2",
  O: "[~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~@2 c#5@4 ~@2 b4 ~ b4@3 a4@3 g#4@3 a4@3 b4@2 ~ c#5@7 b3!2 ~ b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 f#4@9 ~@3 e4@2 ~@4 g#4@3 a4@3 g#4@3 f#4 ~, ~@52 b4@16 ~@14 f#4@5 ~@9]/2",
  P: "~@4 b3!2 ~ b3 ~@2 b3 ~@2 b3@2 ~ b3 ~@2 f#4@10 ~@2 e4@3 f#4@3 g#4@3 a4@3 g#4@3 f#4@2",
  Q: "[~@4 b4@6 a4@3 g#4@2 ~ a4@3 b4 ~@2 c#5@4 ~@2 b4 ~@2 b4@3 a4@3 g#4@3 a4@2 ~ b4 ~@2 c#5@3 b4@2 ~ b4!2 ~ b4 ~@2 b4 ~@2 b4@2 ~ e4@2 ~ b4@4 ~@2 b4 ~ b4 ~ b4!2 ~@2 a4 ~@2 g#4 ~@2 a4@2 ~ b4@3 f#4@3]/2",
  R: "~@4 b3!2 ~ b3 ~@2 b3 ~@2 b3 ~@2 e4 ~@2 b3@7 ~@2 b3!2 ~ b3 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@5",
  S: "[~@4 b3!2 ~ b3 ~@2 b3 ~@2 b3 ~@2 e4@2 ~ b3@4 ~@5 b3@2 ~ b4@2 ~ a4@2 ~ g#4@2 ~ a4 ~@2 b4 ~@2 f#4@5 e4@3 b4@3 a4@3 g#4@3 a4@3 b4 ~@2 c#5@4 ~@3 b4 ~ b4@3 ~ a4@3 g#4@2 a4@3 b4@2 ~ c#5@3]/2",
  T: "[~@3 b4 ~@2 b4@3 a4@3 g#4@3 a4@3 b4@2 ~@2 c#5@4 ~@2 b4 ~@2 b4@2 a4@3 g#4@3 a4@3 b4@2 ~ c#5@7 b4@17 ~@27]/2",
})).s("gm_piccolo").gain(0.3).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A B C D A D C E A B C D A D C E A B C D A D C E F A B C D A D C E A B C D A D C E F A B C D A D C E A B C D A B C D A
  D C E A B C D A D C G H I J K H K J L H I
>`.pickRestart({
  A: "x ~@2 x ~@4 x ~@7", B: "x ~@2 x ~@4 x ~@4 x ~@2", C: "x!2", D: "x ~@8 x ~@14 x ~@4 x ~@9 x ~@8",
  E: "x ~@8 x ~@14 x ~@4 x ~@3 x ~@5 x ~@4 x ~@3", F: "~@24 x ~@4 x ~@3 x ~@5 x ~@4 x ~@3",
  G: "x ~@8 x ~@14 x ~@4 x ~@4 x ~@5 x ~@3 x ~@3", H: "~ x ~@8 x ~@14 x ~@22", I: "~ x ~@8 x ~@14 x ~@14 x ~@7",
  J: "~ x ~@23 x ~@22", K: "~ x ~@8 x ~@14 x ~@3 x ~@10 x ~@7", L: "~ x ~@8 x ~@14 x ~@3 x ~@4 x ~@5 x ~@3 x ~@3",
})).gain(0.48)

// drums · rim
const rim = s("rim").struct("<A@24 B A@16 B A@27 C ~@3 D E@6>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~@12 x ~@24 x ~@10", D: "~@37 x ~@10", E: "~@13 x ~@23 x ~@10",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B C A B A B A B A B A B A B A B A B C 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 D E F E F E F E F E F
>`.pickRestart({
  A: "~ x!7", B: "x!5 ~ x!2", C: "x ~ x ~ x ~ x!2", D: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@12 x ~@5 x ~@4",
  E: "~@7 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4", F: "~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@11 x ~@5 x ~@4",
})).gain(0.29)

// drums · open hat
const open_hat = s("oh").struct(`<
  A B A B A B A C A B A B A B A C A B A B A B A C@2 A B A B A B A C A B A B A B A C@2 A B A B A B A C A B A B A B A B A
  B A C A B A B A B A D E F E F E F E D E F
>`.pickRestart({
  A: "x", B: "~@5 x ~@2", C: "~@11 x ~@4", D: "~@17 x ~@6", E: "~ x ~@46", F: "~@31 x ~@16",
})).gain(0.38)

// drums · shaker
const shaker = s("sh").struct(`<
  A B C D E F G H A B C D E F G H A B C D E F G H I A B C D E F G H A B C D E F G H A B C D E F G H A B C D E A B C D E
  F G H A B C D E F G J K L M N O P Q R K S
>`.pickRestart({
  A: "x ~@5 x ~@5 x ~@5 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@5 x ~@5 x ~@5",
  B: "x ~@5 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@8 x ~@5 x ~@2 x ~@2 x ~@2 x ~@2",
  C: "~@3 x ~@2 x ~@2 x ~@2 x ~ x!2 ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@5",
  D: "x ~ x!2 ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2",
  E: "x ~@5 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@4 x ~@3 x ~@5 x ~@5 x ~@2 x ~@2",
  F: "x ~ x!2 ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@2",
  G: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@2",
  H: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~@5 x ~@5 x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2 x ~@2",
  I: "~@24 x ~ x!2 ~@2 x ~@5 x ~@5 x ~@5",
  J: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~@5 x ~@5 x ~@2 x ~@3 x ~@2 x!2 ~ x ~@2 x ~@2 x ~",
  K: "~ x ~@5 x ~@5 x ~@5 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@5 x ~@5 x ~@4",
  L: "~ x ~@5 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2 x ~@8 x ~@5 x ~@2 x ~@2 x ~@2 x ~",
  M: "~@4 x ~@2 x ~@2 x ~@2 x!2 ~ x!2 ~@4 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4",
  N: "~ x!2 ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x!2 ~@4 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  O: "~ x ~@5 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2 x ~@3 x ~@4 x ~@5 x ~@5 x ~@2 x ~",
  P: "~ x!2 ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2 x ~",
  Q: "~ x ~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2 x ~",
  R: "~ x ~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x ~@5 x ~@5 x ~@2 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2 x ~",
// … 24 more lines

More by Mariah Carey