Strudelify

Fourth of July

Mariah Carey

KeyF♯ minorTempo74 bpm
0:00/0:00
// Fourth of July — Mariah Carey
// 74 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// 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(74/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
const bass = note(`<
  ~@5 A@2 B@2 C@2 B@2 D@8 E@3 F G@8 H@3 I@7 J@5 K@4 L@6 M@5 N O P Q R S T U V S W X Y Z AA@3
>`.pickRestart({
  A: "[~@23 d2@23 ~@2]/2", B: "[~@23 f#1@23 ~@2]/2", C: "[~@46 d2@49 ~]/2",
  D: "[~@34 b1@3 a1@3 f#1@2 ~ d1@2 ~ b0@7 ~@2 b0@5 ~@4 b0@5 ~@16 b0@3 d1@3 b0@2 ~ b1@6 ~@3 b1@6 ~@3 f#1@6 ~@15 e1@3 f#1@3 g1@2 ~ a1@6 ~@3 a1@5 ~@4 a1@7 ~@14 a1@2 ~ b1@3 a1@2 ~ f#1@6 ~@3 f#1@6 ~@3 f#1@5 ~@4 f#1@5 ~@4 f#1@3 g1@3 f#1@3 d1@2 ~ b0@6 ~@3 b0@6 ~@3 b0@5 ~@16 b0@3 d1@2 ~ b0@2 ~ b1@6 ~@3 b1@5 ~@4 f#1@6 ~@15 e1@3 f#1@3 g1@2 ~ a1@6 ~@3 a1@5 ~@4 a1@6 ~@15 a1@3 b1@3 a1 ~@2 f#1@2]/8",
  E: "[~@7 f#1@5 ~@4 f#1@6 ~@3 f#1@5 ~@4 f#1@3 g1@3 f#1@3 d1 ~@2 b0@7 ~@2 b0@5 ~@4 b0@5 ~@16 b0@3 d1@3 b0@2 ~ b1@6 ~@3 b1@6 ~@3 f#1@6 ~@15 e1@3 f#1@3 g1@2 ~ a1@2]/3",
  F: "~@7 a1@6 ~@3 a1@7 ~@17 f#1@3 g1@3 a1@2",
  G: "[~@22 d2@21 ~@3 d1@48 c#1@46 ~@2 f#1@89 ~ f#1@3 e1@3 d1@48 c#1@48 ~ f#1@49]/8",
  H: "[~@32 d1@14 ~ b0@6 ~@3 b0@5 ~@4 b0@5 ~@16 b0@3 d1@2 ~ b0@3 b1@5 ~@4 b1@5 ~@4 f#1@6 ~@18 f#1@3 g1@2 ~ a1, ~@95 c2 ~@48]/3",
  I: "[~@8 a1@5 ~@4 a1@4 ~@17 a1@3 b1@3 a1@2 ~ f#1@7 ~@2 f#1@6 ~@3 f#1@6 ~@3 f#1@3 ~@3 f#1@3 g1@3 f#1@3 e1@3 d1@2 ~ b0@6 ~@3 b0@6 ~@3 b0@5 ~@16 b0@3 d1@2 ~ b0@3 b1@6 ~@3 b1@5 ~@4 f#1@6 ~@12 e1@5 ~ f#1@4 ~@2 a1@7 ~@2 a1@5 ~@4 a1@4 ~@17 a1@3 b1@3 a1 ~@2 f#1@6 ~@3 f#1@6 ~@3 f#1@6 ~@3 f#1@5 ~ f#1@3 g1@3 f#1@3 d1@4 ~@2 b0@6 ~@3 b0@6 ~@3 b0@5 ~@16 b0@3 d1@3 b0@3 b1, ~@191 b1 ~@144]/7",
  J: "[~@8 b1@6 ~@3 f#1@7 ~@14 e1@3 f#1@3 g1@2 ~ a1@7 ~@2 a1@6 ~@3 a1@4 ~@17 a1@3 b1@3 a1@2 ~ f#1@7 ~@2 f#1@6 ~@3 f#1@5 ~@4 f#1@4 ~@2 f#1@3 g1@3 f#1@2 ~ d1@4 ~@2 b0@7 ~@2 b0@7 ~@2 b0@5 ~@16 b0@3 d1@3 b0@2 ~ b1@6 ~@3 b1@5 ~@4 f#1@6 ~@15 e1@3 f#1@3 g1@2 ~ a1]/5",
  K: "[~@8 a1@6 ~@3 a1@7 ~@17 f#1@3 g1@2 ~ a1@29 ~@4 a1@12 ~@3 e1@6 ~@3 e1@5 ~@4 e1@6 ~@15 e1@3 g1@3 e1@3 a1@6 ~@3 a1@6 ~@3 a1@5 ~@4 a1@6 ~@6 a1@3 b1@3 a1@2 ~ d1]/4",
  L: "[~@8 d1@5 ~@4 d1@6 ~@15 d1@3 g1@3 a1@2 ~ b1@6 ~@3 b1@6 ~@3 b1@6 ~@3 b1@6 ~@3 a1@3 f#1@7 ~@2 e1@7 ~@2 e1@6 ~@3 e1@5 ~@16 e1@3 g1@3 e1@2 ~ a1@6 ~@3 a1@6 ~@3 a1@7 ~@17 a1@3 g1@3 d1@84 d1@10 ~@2 b0]/6",
  M: "[~@8 b0@6 ~@3 b0@7 ~@14 b0@3 d1@3 b0@2 ~ b1@6 ~@3 b1@5 ~@4 f#1@7 ~@14 e1@3 f#1@3 g1@2 ~ a1@6 ~@3 a1@6 ~@3 a1@5 ~@16 a1@3 b1@3 a1@3 f#1@6 ~@3 f#1@6 ~@3 f#1@6 ~@3 f#1@3 ~@3 f#1@3 g1@3 f#1@3 e1@3 d1@3 b0@6 ~@3 b0@7 ~@2 b0@6 ~@16 b0@3 d1@3 b0@2 ~]/5",
  N: "b1@5 ~@4 b1@5 ~@4 f#1@23 ~ e1@3 f#1 ~@2", O: "a1@6 ~@3 a1@6 ~@3 a1@7 ~@14 a1@3 b1@3 a1@3",
  P: "f#1@5 ~@4 f#1@6 ~@3 f#1@6 ~@3 f#1@6 ~@3 g1@3 f#1@3 e1@5 ~", Q: "b0@7 ~@2 b0@6 ~@3 b0@5 ~@16 b0@3 d1@3 b0@3",
  R: "b1@6 ~@3 b1@6 ~@3 f#1@7 ~@14 d1@3 e1@3 f#1@3", S: "a1@6 ~@3 a1@5 ~@4 a1@5 ~@16 a1@3 b1@3 a1@2 ~",
  T: "f#1@7 ~@2 f#1@6 ~@3 f#1@6 ~@3 f#1@4 ~@2 f#1@3 g1@3 f#1@2 ~ e1@5 ~, ~@42 d1 ~@5",
  U: "b0@5 ~@4 b0@6 ~@3 b0@6 ~@15 b0@3 d1@3 b0@2 ~", V: "b1@6 ~@3 b1@7 ~@2 f#1@8 ~@13 e1@3 f#1@3 g1@2 ~",
  W: "f#1@6 ~@3 f#1@6 ~@3 f#1@6 ~@3 f#1@3 ~@3 f#1@2 ~ g1@3 f#1@3 e1@3 d1@3",
  X: "b0@6 ~@3 b0@6 ~@3 b0@5 ~@16 b0@3 d1@3 b0@2 ~", Y: "b1@6 ~@3 b1@6 ~@3 f#1@6 ~@15 e1@3 f#1@3 g1@2 ~",
  Z: "a1@5 ~@4 a1@4 ~@5 a1@6 ~@24", AA: "[a1@107 ~@37]/3",
})).s("gm_electric_bass_finger").gain(0.38)

// chords · epiano2
const epiano2 = note("<A@4 B@8 C@5 D@6 E@4 F@4 G@4 H@7 I@4 J@7 K@5 L@2 M@5 N O@2 P Q R@2 S T U V W X@3>".pickRestart({
  A: "[~@42 f#2@2 ~@28 f#5@21 ~@32 c#4@6 ~@14 f#3@34 ~@6 [a4,d5]@7, ~@20 d5@28 c#3@9 c#4 d4@10 e5@39 a4@4 f#4@5 a4@4 f#4@11 f#4@4 c#4@4 a3@40 ~@13, ~@22 c#5@25 b2@8 a3 b3@7 a4@3 c#5 d5@30 c#5@3 a4@4 c#5@75 ~@13, ~@23 b4@22 a2@6 e3@10 f#4 g4@31 f#5@86 ~@13, ~@24 a4 g4@19 f#2@5 d3@10 e4@34 f#2@99]/4", // D5
  B: "[~@94 [a3,d4,f#4]@46 ~@2 [c#4,e4,g#4]@44 ~@3 [f#2,f#3,a3,c#4]@47 ~@2 [f#2,e3,a#3,c#4]@45 ~@28 f#5@19 ~@5 [c#3,c#4,e4,g#4]@43 ~@4 a3@2, ~@4 f#2@51 d6@85 ~@168 d6@7 ~@69, ~@22 d4@31 f#5@87 ~@240 f#3@4, ~@25 f#4@29 a5@86 ~@169 a5@21 ~@54, ~@29 d5@65 d3@92 ~@100 [d3,a3,d4,f#4]@45 ~@48 [c#4,f#4]@5]/8", // D C#m F#m F#7 C#m D F#5
  C: "[~@14 [a3,c#4,f#4]@31 ~ [a#3,c#4]@6 ~@27 c#5@13 ~@2 [f#3,b3]@18 ~@54 [f#4,b4,d5]@22 ~@2 [b3,c#4]@17 ~@24 e5@7 ~ f#2, ~@8 f#3@37 ~ e3@94 ~@2 [f#3,d4]@46 ~@38 b4@11 ~@3, ~@46 f#3@48 b2@27 d4@19 ~@50 e4@24 e4@24 ~@2, ~@52 a#3@9 f#4@6 c#5@6 f#5@19 ~@20 f#3@15 b2@61 ~@2 a2@48 ~@2, ~@55 c#4@37 ~@2 d4@21 b3@26 ~@66 b3@31 ~@2]/5", // F#m A#m B5 Bm Bsus2 D
  D: "[~@7 [a3,c#4]@18 ~@3 c#4@16 ~@2 [f#3,b3]@9 ~@27 f#4@13 f#3@17 ~@12 d4@16 ~@37 b4@11 ~@3 f#3@17 ~@18 [f#3,a3]@11 ~@2 b3@20 ~@7 d4@8 [b3,d4]@11 ~@3, ~@7 f#3@14 ~@4 a3@19 ~@2 b2@94 ~@2 [a2,b3,c#4,e4]@47 ~@2 f#2@46 ~@2 b2@49, ~@46 d4@17 d4@16 d5@16 ~@17 f#3@28 ~@26 b5@9 c#5@13 ~@3 [a3,c#4]@23 ~ c#4@22 ~@2 d4@27 ~@22, ~@55 f#3@25 b4@15 b3@23 b3@22 ~@24 c#6@24 ~@20 f#3@18 ~@13 f#3@16 ~@33, ~@58 b3@36 ~ d4@29 ~@38 e6@26 ~@23 a3@15 ~@33 b3@15 ~@14]/6", // A B5 F#m Bm A
  E: "[~@10 d5@31 ~@6 e4@20 ~@3 e4@21 ~@3 e4@22 ~@20 c#5@5 ~@2 [d3,f#4]@47 ~@2, ~@7 f#4@34 ~@5 a2@45 ~@3 g2@96 ~@2, ~@9 b4@32 ~@5 [b3,c#4]@20 ~ c#4@24 ~@3 a3@47 ~ [a3,d4]@47 ~@3, ~@94 c#4@18 ~@4 e4@25 ~@51, ~@131 e5@10 ~@51]/4", // D Bsus2 D5
  F: "[[c#3,c#4,e4,g#4]@44 ~@3 f#3@15 ~@7 [a3,c#4,f#4]@24 ~@2 e3@43 ~@29 f#5@23 ~@2, ~@47 [a3,c#4,f#4]@22 ~@96 d5@25 ~@2, ~@62 f#3@31 ~ [f#3,a#3,c#4]@44 ~@4 [d3,a3,d4,f#4]@48 ~@2]/4", // C#m F#m F# D
  G: "[[c#3,c#4,e4,g#4]@44 ~@3 a3@5 ~@22 f#5@20 ~@34 c#5@14 ~ f#3@23 ~@10 d4@13 ~@2 [b2,f#3,b3,d4], ~@47 f#3@21 c#5@25 ~@22 a#3@6 f#4@21 ~@24 f#3@22 ~@4, ~@47 f#4@15 f#4@31 ~@2 e3@48 b2@46 ~@3, ~@47 c#4@9 c#4@37 ~ [a#3,c#4]@24 ~ c#4@23 ~ d4@33 ~@16, ~@52 a3@41 ~ f#3@48 ~ b3@27 b3@19 ~@3]/4", // C#m Bm A#m
  H: "[~@8 [f#3,b3,d4]@8 ~ [b3,d4]@28 ~@2 b3@18 ~@18 b3@9 ~@3 [f#3,a3]@17 ~@7 c#4@20 ~@4 f#3@9 f#3@8 ~@28 f#3@3 ~@36 a4@10 ~@27 b4@20 ~@3 [f#3,a3]@18 ~@9 f#4@21 ~, ~@16 f#3@28 ~@3 a2@45 ~@3 f#2@44 ~@4 b2@41 b2@52 ~@3 [a2,b3,c#4,e4]@45 ~@3 [f#2,c#4]@48 ~, ~@47 e4@29 e4@16 ~@23 a3@23 ~@5 [b3,d4]@18 [b3,d4]@30 ~@71 c#5@22 ~@52, ~@47 c#4@24 c#4@21 ~@3 c#4@24 ~@95 b4@22 ~@25 e5@24 ~@51, ~@65 b3@18 ~@29 f#3@27 ~@21 f#3@27 ~@4 [f#3,b3,d4]@46 ~@68 [f#3,a3]@30 ~]/7", // Bm F#m A F#5 Bm F#m
  I: "[[b2,f#3]@23 ~@10 d4@13 ~@37 f#4@11 ~@36 b4@12 ~ f#3@18 ~@18 c#5@12 ~, [b3,d4]@32 b3@14 ~@19 b4@29 ~@23 e6@2 b5@9 [c#5,e5]@14 ~@19 f#3@30 ~, ~@23 b2@23 ~ [b2,f#3,b3,d4]@47 ~@2 a2@46 ~ f#2@30 f#4@18 ~, ~@26 f#3@20 ~@31 a4@17 ~ [b3,c#4,e4]@46 ~@2 [a3,c#4]@24 c#4@24 ~, ~@118 c#6@23 ~@23 a3@27 ~]/4", // B5 Bm C#m Bm C#m7 A
  J: "[~@25 d4@20 ~@2 f#3@9 f#3@8 [f#3,b3,d4]@29 ~@2 [a3,c#4]@24 a3@12 [a3,c#4,e4]@11 ~ [g3,c#4,e4]@41 ~@7 [g3,b3]@12 ~@12 e5@22 ~@3 [a3,c#4]@9 ~@3 c#4@5 ~@19 a3@10 ~ [a3,d4]@9 ~@3 d4@6 ~@19 [a3,d4]@5 ~ a3@5 ~, [b3,d4]@23 b3@23 ~ [b3,d4]@17 ~@31 e4@36 ~@72 b3@34 ~@3 e4@18 [c#4,e4]@28 ~ f#4@18 f#4@29 ~@2, f#3@16 f#3@30 ~@145 [e3,e4]@46 ~@2 a2@46 ~@2 d3@30 d3@17 ~@2, ~@8 b2@38 ~ b2@46 ~@2 a2@47 ~@72 b4@23 ~@12 a3@8 a3@19 ~@20 a3@9 [a3,d4]@19 ~@5 d4@5 ~@2]/7", // Bm A C#dim G A D5 Bm C#m …
  K: "[~@12 f#3@12 ~@10 a3@2 [a3,b3]@9 ~@35 e5@13 ~@3 [a3,c#4]@8 ~@3 c#4@6 ~@9 [a4,c#5,e5]@20 ~ [a3,d4]@7 ~@35 f#5@49 ~@6, ~@12 d#4@33 ~@2 g3@8 ~ g3@38 ~@10 a3@9 [a3,c#4,e4]@29 ~@8 a3@12 ~@3 a3@12 a4@58 ~@5, ~@12 [a3,b3]@24 ~@11 b3@12 b3@12 g4@3 b4@19 ~@60 d4@82 ~@5, ~@24 b2@21 ~@3 e4@46 ~@2 e4@17 ~@30 f#4@16 f#4@21 d5@55 ~@5, ~@26 f#3@19 ~@2 e3@48 a2@48 d3@91 ~@6]/5", // Asus2 A D5 A Asus2
  L: "[b3@12 ~@23 b2@10 ~@38 a4@10 ~@3, b2@35 ~@12 [b2,f#3,d4]@46 ~@3, d4@17 d4@27 ~@27 b4@22 ~@3, f#3@8 ~@4 b3@33 ~@3 b3@45 ~@3]/2", // Bm
  M: "[[b3,c#4]@9 ~@29 e5@8 ~@2 a3@8 ~@3 a3@7 [f#3,a3]@18 [f#3,a3]@9 ~@15 f#3@5 ~@25 b3@5 ~@10 f#3@9 [f#3,b3,d4]@28 ~@2 [b3,c#4]@8 ~@10 e4@28 ~@2, a2@27 b4@6 c#5@13 ~@50 d4@18 d4@29 ~ d4@18 ~@30 e4@18 ~@30, e4@18 e4@28 ~@2 f#2@45 ~@2 b2@36 b2@11 ~@2 b2@46 ~ a2@46 ~@3, ~@9 b3@37 ~ f#3@9 f#3@10 ~@29 f#3@13 ~@5 f#3@21 ~ f#3@18 ~@87, ~@12 c#4@34 ~ c#4@19 c#4@27 ~@2 b3@18 ~ b3@24 ~@6 b3@13 ~@43 b3@37 ~@3]/5", // Bsus2 F#m Bm Bsus2
  N: "[f#3,a3]@11 ~@25 f#4@12, [f#2,c#4]@29 c#5@18 ~, ~@11 f#3@36 ~, ~@12 a3@35 ~, ~@23 f#5@24 ~", // F#m F#5
  O: "[[f#3,b3]@11 b3@6 ~@19 b2@9 ~@3 b3@9 ~@26 a4@11 ~@2, b2@18 ~@6 b2@12 b4@11 ~, d4@17 [f#3,d4]@28 ~@12 f#3@37 ~@2, ~@18 b3@28 ~ d4@17 ~ d4@29 ~@2, ~@30 b3@17 ~]/2", // B5 D
  P: "[b3,c#4]@9 ~@26 e5@11 ~@2, e4@17 e4@29 ~@2, ~@9 b3@37 ~@2, ~@12 c#4@35 ~, ~@17 c#5@6 ~", // Bsus2
  Q: "f#3@4 ~@2 a3@3 ~@9 f#5@6, f#2@5 c#5@3, c#4@3 c#4@5, a3 ~ f#4@2, ~ f#3@5",
  R: "[~ [b2,f#3,d4]@23 ~@3 d4@6 [b3,d4]@14 ~@13 b3@6 [f#3,b3,d4]@18 [b3,d4]@11 ~, ~ b3@32 ~@15 d4@18 ~@30, ~@24 b2@23 ~ b3@12 ~@36, ~@27 f#3@29 f#3@10 ~@30]/2", // Bm
  S: "[b3,c#4]@9 ~@3 c#4@6 e4@18 ~@6 b3@5 ~, a2@23 ~, e4@18 ~@18 e4@11 ~, ~@9 b3@9 [b3,c#4]@23 c#4@5 ~@2", // Bsus2
  T: "[f#3,a3]@9 ~@3 a3@6 [f#3,a3,c#4]@18 [f#3,a3]@11 ~, f#2@47 ~, c#4@3 ~@5, ~@9 f#3@8 ~@31", // F#m
  U: "f#3@9 ~@3 b3@6 ~@18 b2@11 ~, b2@3 ~, [b3,d4]@13 ~@35, ~@9 f#3@9 [f#3,b3,d4]@28 ~@2", // Bm
  V: "~@6 b3@3 ~@9 b2@5 ~, [f#3,b3]@9 f#3@9 [f#3,b3,d4]@28 ~@2, ~ b2@35 ~@12, ~ d4@17 ~@30", // B5 Bm
  W: "[a3,c#4]@6 ~@3 c#4@8 [a3,c#4,e4]@26 ~@5, a2@43 ~@5, e4@17 ~@31, ~@6 a3@11 ~@31", // A
  X: "[~@60 e6@59 ~@25, a2@48 a5@71 ~@25, [a3,c#4,e4]@33 e5@86 ~@25, ~@24 a4@95 ~@25, ~@27 c#5@92 ~@25]/3", // A
})).s("gm_epiano2").gain(0.23)

// chords · epiano2 · soft notes
const epiano2_soft = note(`<
  A@7 ~@3 B ~@3 C@2 D E ~@2 F ~ G ~ H I ~@4 J ~@17 K L M ~@5 N ~ O ~@4 P Q ~ R S T U ~ V ~ W X ~@3 Y@2
>`.pickRestart({
  A: "[~@65 b4@96 ~@24 [d4,f#4]@32 ~@10 a4@96 ~@13, ~@17 f#5@55 ~@264, ~@19 e5@35 g3@96 ~@186, ~@26 f#4@26 f#3@93 ~@191, ~@11 g2@24 ~@49]/7", // D
  B: "~@27 d6@14 ~@7", C: "[~@38 f#3@6 ~@2 b3@45 ~@5]/2", D: "~@12 c#5@3 ~, ~@9 c#4@14 ~", E: "~@21 f#3@23 ~@4",
  F: "~@31 e5@14 ~@3", G: "~@15 f#3@18 ~ f#3@12 ~@2", H: "~@16 b3@27 ~@5", I: "~@16 c#4@29 ~@3", J: "~@10 a4@13 ~",
  K: "~@26 c#4@9 ~@13", L: "a2@41 ~@7", M: "~@7 g4@8 ~, ~@3 g3@12 ~", N: "~@6 a3 ~@9", O: "~@2 f#3@9 ~",
  P: "~@13 b3@5 ~@30", Q: "~@11 c#4@34 ~@3", R: "~@8 f#3@9 ~@31", S: "f#3@3 ~@13", T: "~@34 b4@13 ~, a2@23 ~",
  U: "~@3 a3@5", V: "~@36 f#3@11 ~, b2@47 ~", W: "~@18 c#4@5 ~", X: "~@13 d4@5 ~@30", Y: "[~@12 c#6@59 ~@25]/2",
})).s("gm_epiano2").gain(0.13)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@7 A@2 ~@2 B@2 ~@4 C ~@7 D@8 ~@47>".pickRestart({
  A: "[~@23 [c#4,f#4,a4]@13 ~@12]/2", B: "[~@46 [c#4,f#4,a4]@41 ~@9]/2", C: "~@35 e4@13, ~@17 [c#4,a4]@7",
  D: "[~@47 [a3,f#4]@81 ~@14 [a3,c#4,f#4]@89 ~@8 [a3,d4,f#4]@84 ~@12 [a3,c#4,f#4]@49, ~@47 d4@77 ~@260]/8", // D F#m D F#m
})).s("gm_electric_guitar_jazz").gain(0.11).pan(0.7)

// other · string ensemble 1
const string_ensemble_1 = note("<~@33 A@4 B@4 C@8 D@2 E F@3 G@7 H@3 I J@2 E I J@2 K@2 J@2 L@2 ~@2>".pickRestart({
  A: "[~@47 [b2,b3]@96 [a2,a3]@47 ~ f#2, ~@95 f#3]/4", B: "[~@47 b2@96 [a2,a3]@48 [f#2,f#3], ~@46 b3@97 ~@49]/4",
  C: "[~@47 [b2,b3]@96 [a2,a3]@48 [f#2,f#3]@48 [b2,b3]@96 [a2,a3]@49]/8", D: "[~ e3, ~@47 e4@49]/2", E: "[a2,a3]",
  F: "[[d3,d4]@47 [b2,b3]@48 [e3,e4]@48 a2]/3", // D B E
  G: "[a3@47 [d3,d4]@87 ~@9 [b2,b3]@96 ~ a2@47 ~ f#3@48, ~@239 a3@48 f#2@48 ~]/7", H: "[[b2,b3]@95 [a2,a3]@49]/3",
  I: "[f#2,f#3]", J: "[b2,b3]/2", K: "[[a2,a3]@47 ~ f#3@48, ~@47 f#2@48 ~]/2", L: "[[a2,a3]@91 ~@5]/2",
})).s("gm_string_ensemble_1").gain(0.12).pan(0.4)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@14 A B C ~ D ~ C B C B C ~@8 E F E F E F ~ F E F ~ F ~ F ~ F ~@9 F ~ F G F H I ~ J ~ I ~ I K@2 L I M ~@4
>`.pickRestart({
  A: "~@25 a3 ~@5 a3 ~@16", B: "~@46 a3 ~", C: "~@7 a3 ~@8 a3 ~@31", D: "~@4 a3 ~@8 a3 ~@5 a3 ~@28", E: "~@47 a3",
  F: "~@8 a3 ~@8 a3 ~@30", G: "~@17 a3 ~@30", H: "~@9 a3 ~@38", I: "~@9 a3 ~@8 a3 ~@29", J: "a3 ~@8 a3 ~@8 a3 ~@29",
  K: "~@39 a3 ~@8", L: "a3 ~@26 a3 ~@20", M: "~@27 a3 ~@8 a3 ~@11",
})).s("gm_electric_guitar_muted").gain(0.27).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@5 A ~ B ~ B ~ B ~ A C D C E C D C E C D C ~@8 A F G H I H G H I H G H I H G J K G L G@3 H M K H G H I G@2 H M N O N
  P N P N P N@2 Q ~@3
>`.pickRestart({
  A: "~@23 x", B: "~@43 x ~@2 x ~", C: "~@7 x ~@8 x ~@26 x ~@2 x ~", D: "~@7 x ~@8 x ~@29 x ~",
  E: "~@7 x ~@8 x ~@8 x ~@20 x ~", F: "~@7 x ~@8 x ~@27 x ~@2 x", G: "~@8 x ~@8 x ~@29 x",
  H: "~@8 x ~@8 x ~@26 x ~@2 x", I: "~@8 x ~@8 x ~@8 x ~@20 x", J: "~@8 x ~@8 x ~@26 x ~@3", K: "~@47 x",
  L: "~@8 x ~@8 x ~@8 x ~@17 x ~@2 x", M: "~@8 x ~@8 x ~@30", N: "x ~@2 x ~@2 x ~@8 x", O: "x ~@2 x ~@2 x ~@3 x ~@5",
  P: "x ~@2 x ~@2 x ~@2 x ~@6", Q: "x ~@2 x ~@2 x ~@9",
})).gain(0.39)

// drums · snare
const snare = s("sd").struct("<~@13 A B@11 A ~@7 A B C@14 D C@7 D C@7 E F@11 ~@3>".pickRestart({
  A: "~@17 x ~@6", B: "~@5 x ~@11 x ~@6", C: "~@11 x ~@23 x ~@12", D: "~@35 x ~@12", E: "~@11 x ~@24 x ~@11",
  F: "~ x ~ x",
})).gain(0.39)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@6 A@7 ~ B@7 C B@2 C ~ D@7 E F G@6 H G@6 H I G@6 H ~ G@7 J K L@7 K L@2 ~@3
>`.pickRestart({
  A: "~@17 x ~@6", B: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@8 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  C: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@8 x ~@2 x ~@2 x ~@2 x ~@4", D: "~@5 x ~@11 x ~@6",
  E: "~@5 x ~@18", F: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@8 x ~@3 x ~@2 x ~@2 x ~@2 x",
  G: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@8 x ~@2 x ~@2 x ~@2 x ~@2 x",
  H: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@8 x ~@2 x ~@2 x ~@2 x ~@3", I: "~@11 x ~@36",
  J: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@9 x ~@2 x ~@2 x ~@2 x ~@2", K: "~ x!9 ~@2 x!4",
  L: "x!10 ~@2 x!4",
})).gain(0.22)

// drums · low tom
const low_tom = s("lt").struct("<~@33 [~@5 x] ~@15 [~@41 x ~@6] ~@30>").gain(0.39)

// drums · mid tom
const mid_tom = s("mt").struct("<~@25 A ~@7 B ~@15 C ~@7 C ~@7 D ~@7 E ~@6>".pickRestart({
  A: "~@19 x ~@2 x ~@25", B: "~@31 x!2 ~@15", C: "~@2 x", D: "~@11 x!2 ~@3", E: "~@11 x ~@2 x ~",
})).gain(0.39)

// drums · open hat
const open_hat = s("oh").struct("<~@14 A@11 B ~@8 A C@14 ~ C@7 D C@7 E@12 ~@3>".pickRestart({
  A: "~@7 x ~@4", B: "~@17 x ~@6", C: "~@29 x ~@18", D: "~@35 x ~@12", E: "~@5 x ~@2",
})).gain(0.39)

// drums · crash
const crash = s("cr").struct("<~@13 A ~@7 A ~@2 A ~@8 A ~@7 B ~@7 B ~@7 B ~@8 C ~@7 C ~@5>".pickRestart({
  A: "~@23 x", B: "~@47 x", C: "x",
})).gain(0.35)

// drums · ride
const ride = s("rd").struct("<~ A ~@2 B C ~ D ~ E F G H I ~@66>".pickRestart({
  A: "~@25 x ~ x ~ x ~@18", B: "~@7 x ~@2 x ~@2 x ~@34", C: "~@41 x ~ x!2 ~@3", D: "~@20 x!2 ~ x",
  E: "~@42 x ~ x!2 ~@2", F: "~@40 x ~@2 x ~@2 x ~", G: "~@44 x!3 ~", H: "~@47 x", I: "~@31 x ~@2 x ~@13",
})).gain(0.31)

// drums · triangle
const triangle = s("triangles:30").struct("<~@15 A ~ A ~ A ~ B ~ C ~@56>".pickRestart({
  A: "~@43 x ~@4", B: "~@23 x", C: "~@11 x",
})).gain(1.53)

// drums · triangle
const triangle_2 = s("triangles:35").struct(`<
  ~@13 A B C D C D C D E F G H ~@8 A I J@7 K J@6 L J@7 L J@4 M J@2 N O@11 ~@3
>`.pickRestart({
  A: "~@23 x", B: "~@7 x ~@8 x ~@26 x ~@2 x ~", C: "~@7 x ~@2 x ~@8 x ~@2 x ~@23 x ~", D: "~@7 x ~@35 x ~@2 x ~",
  E: "~@7 x ~@2 x ~@8 x ~@2 x ~@25", F: "~@7 x ~@8 x ~@27 x ~@2 x", G: "~@7 x ~@3 x ~@7 x ~@3 x ~@23 x",
  H: "~@7 x ~@8 x ~@26 x ~@3 x", I: "~@7 x ~@2 x ~@8 x ~@2 x ~@24 x", J: "~@8 x ~@2 x ~@8 x ~@2 x ~@23 x",
  K: "~@8 x ~@2 x ~@11 x ~@23 x", L: "~@47 x", M: "~@11 x ~@8 x ~@2 x ~@23 x", N: "~@8 x ~@2 x ~@8 x ~@2 x ~@24",
  O: "x ~@2 x!2 ~@2 x!2 ~@7",
})).gain(1.53)

stack(
  bass, epiano2, epiano2_soft, electric_guitar_jazz, string_ensemble_1, electric_guitar_muted, kick, snare, hihat,
  low_tom, mid_tom, open_hat, crash, ride, triangle, triangle_2
)

More by Mariah Carey