Strudelify
My All cover art

1997 · Butterfly

My All

Mariah Carey

KeyG minorTempo54 bpm
0:00/0:00
// My All — Mariah Carey
// 54 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 5, 4/4 at bar 6, 2/4 at bar 11, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 52 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(54/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 · acoustic bass
const bass = note("<~@11 A@8 B@6 C@8 D@6 E@4 F@5 ~@4>".pickRestart({
  A: "[~@15 c2@12 ~@2 c2@2 d2@13 ~ d2@2 g2@8 f2@7 ~ eb2@11 ~ eb2@2 d2@2 c2@12 ~@2 c2@2 f2@9 ~ f2@2 g2@2 f2@2 bb1@12 ~@2 bb1@2 eb2@9 ~ eb2@2 f2@2 eb2 ~ a1@12 ~@2 a1@2 ab1@12 ~@2 ab1@2 g1@8 f1@7 ~ eb1@7 ~@9 c2@13 ~ c2@2 d2@13 ~ d2@2 g1@16 ~]/8",
  B: "[~@13 g1@2 c2@12 ~@2 c2@2 d2@13 ~ d2@2 g1@13 ~ g1 ~ g1@10 f1@2 g1@2 f1@2 c2@12 ~@2 c2@2 d2@13 ~ d2@2 g1@13 ~ g1 ~ g1@14 f2@2 eb2@13 ~ eb2@2 d2@13 ~ d2@2 g1@13 ~ g1 ~ g1]/6",
  C: "[~@15 c2@13 ~ c2@2 d2@12 ~@2 d2@2 g2@8 f2@7 ~ eb2@11 ~ eb2@2 d2@2 c2@12 ~@2 c2@2 f2@9 ~ f2@2 g2@2 f2 ~ bb1@13 ~ bb1@2 eb2@9 ~ eb2@2 f2@2 eb2 ~ a1@12 ~@2 a1 ~ ab1@12 ~@2 ab1@2 g1@8 f2@8 eb2@13 ~ eb2 ~ c2@13 ~ c2@2 d2@13 ~ d2@2 g1@13 ~ g1 ~ g1]/8",
  D: "[~@11 f2@2 eb2@2 c2@13 ~ c2@2 d2@11 ~ d2@2 c2@2 g1@13 ~ d2@2 g1@10 d2@2 g2@2 f2@2 c2@12 ~@2 c2@2 d2@13 ~ d2 ~ g1@13 ~ g1 ~ g1@8 f2@7 ~ eb2@12 ~@2 eb2@2 d2@12 ~@2 d2@2 g1@13 ~ g1 ~ g1]/6",
  E: "[~@15 c2@12 ~@2 c2@2 d2@11 ~ d2@2 c2@2 g1@8 f2@8 eb2@10 ~@2 eb2@2 d2@2 c2@12 ~@2 c2@2 f2@9 ~ f2@2 g2@2 f2 ~ bb1@12 ~@2 bb1@2 eb2]/4",
  F: "[~@9 eb2@2 f2@2 eb2@2 a1@13 ~ a1@2 ab1@12 d2@2 c2@2 g1@8 f1@8 eb2@13 ~@3 c2@13 ~ c2 ~ d2@11 ~ d2@2 c2@2 g1@8 f1@8 e1@15 ~@18, ~@47 a1 ~@112]/5",
})).s("gm_acoustic_bass").gain(0.31)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<A@5 B@4 C@7 D E@3 F@6 G@4 H@5 I@5 J@7 K L M@3>".pickRestart({
  A: "[~@20 d4@2 g4@4 d4@4 ~@17 db3 ~@4 a3@2 d4@4 a3@4 ~@4 bb2@10 g3@2 a3@2 bb3@4 d4@2 g4@4 d4@4 ~@4 eb3@8 ~@2 a3@2 g3@2 ~@4 a3@2 [a3,d4]@4 a3@4 ~@14 c4@4 [b2,b3]@13 ~@3, ~@30 f4@8 eb4@13 ~@11 c4@14 ~@18 f4@4 eb4@13 ~@15 c4@12 g3@19 ~@3, ~@32 c3@14 ~@18 g2@12 ~@4 g2@14 ~@20 d3@14 g2@29 ~@3, ~@34 eb3@11 ~@3 d3@15 ~@33 c3@11 ~@5 gb3@4 ~@18 d3@23 ~@3]/5", // D5 B
  B: "[~@25 eb3@5 ~@11 gb3@4 ~@8 g3@10 ~@6 g4@4 d4@5 ~@7 eb4@8 ~@8 d4@7 ~@9 g3@8 ~@2 g2, ~@19 g3@12 d3@13 ~@3 g2@13 ~@3 g2@12 ~@36 g2@14 ~@3, ~@21 c4@10 ~@2 gb3@4 d4@9 ~@5 d3@12 ~@4 d3@9 ~@3 c3@10 ~@6 d3@11 ~@7 bb2@12 ~@3, ~@35 a3@11 ~@3 bb2@12 ~@4 bb2@11 ~@7 g3@11 ~@3 gb3@11 ~@20]/4",
  C: "[~@3 d3@2 ~@4 b2@2 d3@2 g3@2 ~@4 bb3@2 c4@4 d4@4 ~@6 bb3 ~ d4@3 ~ c4@4 ~@10 c4@2 a3@2 c4@2 d4@2 g4@8 ~@16 [g3,eb4]@7 ~@5 a3@2 d4@2 [a3,d4,gb4]@6 ~@8 g3@2 f2@4 d3@2 g3@2 ~@4 bb3@2 eb4 ~ [g3,bb3,eb4]@6 ~@8 c4@4 eb4@2 c4@2 g3 ~@7 eb4@4 f4@2 eb4@2 c4@2 ~@6 bb3@4 d4@2 ~ f3 ~@6 bb3@2 eb4@3 ~ g4@2 eb4@2 bb3@2 ~@4 eb3@2 ~@2 c4@8 ab2, ~ b2@4 g3@4 ~@8 g2@12 c4@5 ~@3 c3@8 bb3@6 d3@27 ~ c3@12 ~@20 g2@6 ~@58 bb2@14 ~@18 a2@11 ~@6, ~@7 f2@4 ~@4 eb2@14 ~@2 d2@13 ~@5 bb2@29 ~@5 g3@4 ~@28 d3@4 ~@8 eb3@15 ~@17 f3@16 ~@2 d3@12 ~ eb3@17 ~@2 c3@10 ~@5, ~@21 d3@10 ~@4 a2@10 ~@2 g2@30 ~@8 c4@9 ~@35 g3@5 ~@13 g3@9 ~@5 a3@14 ~@4 f3@9 ~@5 g3@14 ~@6 g3@11, ~@53 g3@25 ~@3 eb3@10 ~@4 d3@14 ~@4 bb2@5 ~@25 c3@14 ~@6 c4@7 ~@17 bb3@3 ~@34]/7", // Cm D Eb
  D: "~@7 d4@5 ~@3 g2@4 ~@2 g3@2 ~@4 d3@2 g3@2 eb2, ~ b2@10 ~@12 f2@5 ~@4, ~@3 d3@8 ~@8 d3@4 ~@2 bb2@4 ~@3, ~@5 ab3@7 ~@20",
  E: "[~@7 eb4@6 ~@12 g3@2 eb3@2 ~@12 a3@2 gb3@4 ~@8 a3@2 ~ c4@2 d4@2 ~ g4@11 ~@15 g3@2 eb3@3 ~ d3, ~ bb2@13 ~ c3@12 ~@4 d3@17 ~ bb2@25 ~@5 c3@14 ~@3, ~@3 eb3@10 ~@4 eb3@4 bb3@10 ~@4 a3@4 ~@8 g2@27 ~@22, ~@5 bb3@8 ~@6 g3@5 ~@9 gb3@4 d4@9 ~@5 d3@23 ~@7 eb3@4 bb3@9 ~@2, ~@53 g3@4 bb3@2 ~@24 g3@4 ~@9]/3",
  F: "[~@5 [c4,d4]@9 ~@9 bb3@7 ~@7 g4@3 ~ d4@4 ~@8 [c4,eb4]@4 bb3@4 ~@8 c4@8 ~@8 d4@4 bb3@4 ~@8 d4@4 bb3@5 ~@10 eb4@2 d4@5 ~@10 c4@5 ~@9 a3@2 bb3@2 ~@4 g4@12 ~@12 [g3,eb4]@7 ~ d3, ~ gb3@12 ~@2 g2@14 ~@2 g2@16 ~@10 g4@3 ~ bb4@9 ~@19 bb4@3 ~ bb4@8 ~@16 bb3@10 d2@16 g2@14 d4@15 ~@9 c4@9 ~@2, ~@3 a3@11 ~@3 bb2@13 ~@3 bb2@13 ~ c3@12 ~@8 a3@11 ~@5 d3@10 ~@6 d3@9 ~@5 eb3@15 ~ d3@14 ~@2 bb2@26 ~@4 c3@12 ~@5, ~@19 d3@11 ~@5 d3@12 ~@2 eb3@11 ~@3 d3@15 ~ g2@14 ~@2 g2@13 ~@3 eb2@17 ~@5 a3@9 ~@7 g3@4 ~@2 c4@17 ~@7 g3@4 ~@9, ~@21 g3@9 ~@21 g3@9 ~@5 gb3@13 ~@3 bb2@12 ~@4 bb2@11 ~@7 g3@13 ~@3 gb3@11 ~@5 d3@24 ~@6 eb3@10 ~@5]/6", // Csus2 Cm
  G: "[~@3 a3@2 d4@2 [a3,d4,gb4]@6 ~@8 g3@2 f2@4 d3@2 g3@2 ~@4 bb3@2 eb4 ~ [g3,bb3,eb4]@6 ~@8 c4@4 eb4@2 c4@2 g3 ~@7 eb4@4 f4@2 eb4@2 c4@2 ~@6 bb3@4 d4@2 bb3@2 f3 ~@5 bb3@2 eb4@3 ~ g4@2 eb4@2 bb3@2 ~@4 eb3@2 ~@2 c4@8 ab2, ~@15 g2@4 d3@4 ~@8 eb3@15 ~ c3@14 ~@4 a3@14 ~@2 d3@12 ~@2 eb3@17 ~ c3@10 ~@5, ~@17 bb2@5 ~@11 g3@5 ~@13 g3@9 ~@3 f3@16 bb2@14 ~@18 a2@11 ~@6, ~@67 c4@7 ~@9 f3@9 ~@5 g3@14 ~@6 g3@11]/4", // D Eb
  H: "[~@7 d4@5 ~@3 g2@4 ~@2 g3@2 ~@4 d3@2 g3@2 ~@8 eb4@6 ~@12 g3@2 eb3@2 ~@12 a3@2 gb3@4 ~@8 a3@2 bb3@2 c4@2 d4@2 ~@2 d4 ~ d4@2 g4@4 d4@3 ~@11 c5@4 bb4@2 ~@8 d4@4 a3@4 ~@10 bb4@2 a4@4 g4@3, ~ b2@10 ~@12 f2@5 ~@3 eb2@14 ~@8 bb3@10 ~@4 a3@4 ~@12 d3@23 ~@5 c3@10 ~@6 d3@12 ~@4 g2@14 ~@3, ~@3 d3@8 ~@8 d3@4 ~@2 bb2@4 ~@4 bb2@13 ~ c3@12 ~@10 d4@9 ~@7 g3@4 ~@6 g4@6 ~@8 f4@8 [bb3,eb4]@10 ~@4 a3@6 ~@7 bb2@12 ~@4, ~@5 ab3@7 ~@23 eb3@10 ~@4 eb3@6 ~@8 d3@17 ~ bb2@25 ~@7 eb3@10 ~@2 a4@13 ~@22, ~@37 bb3@8 ~@6 g3@5 ~@9 gb3@5 ~@9 g2@27 ~@27 c4@7 ~ c4@8 [g3,bb3]@11]/5", // Eb5 Gm
  I: "[~@3 d4@2 g4@4 d4@4 ~@10 c5@4 bb4@4 ~@6 d4@4 a3@4 ~@8 a3@4 bb3@4 ~@2 bb4@2 ~@6 d4@2 eb4@4 g4@8 ~@2 a4@2 [g4,bb4]@3 ~ gb4@2 ~@8 eb4@2 d4@5 ~@5 c4 ~@3 a4@2 bb4 ~ c5@2 d5@2 g5@13 ~@11 [g3,eb4]@7 ~ d3, ~ b2@10 ~@2 f4@4 eb4@14 ~@6 c4@8 c4@4 bb3@4 g3@8 g3@8 [g3,g4]@6 ~@26 c3@7 ~@3 g3@4 d3@2 g3@22 ~@4 c3@12 ~@5, ~@5 g3@9 ~ c3@11 ~@5 [d3,a4]@13 ~@3 g2@13 ~@3 g2@11 ~@21 [d2,gb4,a4]@12 ~@8 d4@25 ~@7 g3@4 ~@9, ~@21 bb3@8 ~@6 a3@6 ~@8 bb2@12 ~@6 d3@7 ~@11 eb3@7 ~@7 a2@9 ~@3 g2@6 g4@4 ~@28 c4@9 ~@2, ~@51 d3@10 ~@4 a4@4 ~@23 [g4,a4]@2 ~@19 bb3@27 ~@5 eb3@10 ~@5]/5", // Gm Cm G D5 D Gsus2
  J: "[~@3 a3@2 d4@2 [a3,d4,gb4]@6 ~@8 g3@2 f2@4 d3@2 g3@2 ~@4 bb3@2 eb4 ~ [g3,bb3,eb4]@6 ~@8 c4@4 eb4@2 c4@2 g3 ~@7 eb4@4 f4@2 eb4@2 c4@2 ~@6 bb3@4 d4@2 bb3@2 f3 ~@5 bb3@2 eb4@3 ~ g4@2 eb4@2 bb3@2 ~@4 eb3@2 ~@2 c4@8 ~@8 d4@5 ~@3 g2@4 ~@2 g3@2 ~@4 d3@2 g3@2 ~@8 eb4@6 ~@12 g3@2 eb3@2 ~@12 a3@2 gb3@4 ~@4 d3@2 g3@2 ~@4 d3@2 g3@3, ~@15 g2@4 d3@4 ~@8 eb3@15 ~ c3@14 ~@4 a3@14 ~@2 d3@12 ~@2 eb3@17 ~ c3@10 ~@6 b2@10 ~@14 bb2@4 ~@4 bb2@13 ~ c3@12 ~@10 d4@9 ~@18, ~@17 bb2@5 ~@11 g3@5 ~@13 g3@9 ~@3 f3@16 bb2@14 ~@18 a2@11 ~@5 ab2@13 ~@11 f2@5 ~@3 eb2@14 ~@8 bb3@10 ~@4 a3@4 ~@25, ~@67 c4@7 ~@9 f3@9 ~@5 g3@14 ~@6 g3@11 ~@3 d3@8 ~@8 d3@4 ~@12 eb3@10 ~@4 eb3@6 ~@8 d3@17 ~ bb2@5 ~@3 bb2@4 ~@3, ~@133 ab3@7 ~@25 bb3@8 ~@6 g3@5 ~@9 gb3@5 ~@9 g2@6 ~@2 f2@5 ~@4]/7", // D Eb
  K: "~@5 eb3@8 ~@9 bb3@8 ~@2, ~ g2@11 ~@20, ~@3 bb2@10 ~@3 c3@12 ~@4",
  L: "~@6 c4@19 ~@3 a3@2 bb3@2, d3@3 ~, ~ gb3@12 ~@3",
  M: "[d4@2 g4@4 d4@4 ~@14 c4@3 ~@2 a3@3 a3 ~@2 [c4,d4]@4 a3@3 ~@3 bb3 [g3,bb3,d4]@40 ~@10, ~@11 f4@7 eb4@5 ~@73, ~@13 c3@11 ~@5 d3@12 ~@5 g2@35 ~@15, ~@19 bb3@8 ~@6 a3@6 ~@57]/3", // Csus2 Gm
})).s("gm_acoustic_guitar_nylon").gain(0.21)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@2 A ~ B C ~ D E F G ~ H I ~ J K L ~@8 H I ~ J K L ~ M N@2 O P Q@2 H I ~ J K L R@2 S T@2 ~
>`.pickRestart({
  A: "~@10 d3@5 ~, ~@9 bb2@6 ~", B: "~ bb2@7 ~@8", C: "~@17 eb3@5 ~@10, ~@15 c3@14 ~@3", D: "~@17 eb3@11 ~@4",
  E: "~@3 a3@10 ~@6 d3@10 ~@3", F: "~@19 bb2@9 ~@4", G: "~ gb2@11 ~@20", H: "~ gb3@12 ~@12 bb2@4 ~@3",
  I: "~@17 eb3@12 ~@3", J: "~@6 bb3@3 ~@23", K: "~@17 bb2@6 ~@9", L: "~@28 g3 ~@3", M: "~@19 g3@11 ~@2",
  N: "[~ gb3@10 ~@8 d3@9 ~@7 d3@8 ~@8 g3@10 ~@3, ~@31 g2@12 ~@6 eb3@9 ~@6]/2", O: "~ gb3@11 ~@20",
  P: "~ bb2@9 ~@9 bb2@9 ~@4, ~@15 eb2@10 ~@7, ~@17 g2@9 ~@6", Q: "[~ gb2@10 ~@6 bb2@20 ~@27]/2",
  R: "[~@31 eb2@14 ~@7 g3@9 ~@3, ~@25 eb3@5 ~@2]/2", S: "~ a3@5 ~@2",
  T: "[~@17 g3@8 ~@2 bb3@2 ~ gb3@10 ~@4 g3@2 ~@18, ~@15 eb3@9 ~@40]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.09)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@11 A@8 ~@6 B@5 C@3 D@6 E@7 F@2 G ~ H@2>".pickRestart({
  A: "[~@15 [g3,eb4]@16 [gb3,a3]@16 ~@16 eb4@16 [g3,c4]@15 a3 ~ a3@11 ~@4 d4@16 ~@16 [a3,c4]@16 [ab3,b3,d4]@15 ~ d4@16 ~@31 [a3,d4]@15 ~ [g3,bb3,d4]@18, ~@15 c4@32 g3@31 ~@17 f3@47 ~@33 g3@46 ~@35, ~@31 d4@29 ~@19 eb4@33 ~@15 eb4@32 ~@32 eb4@31 ~@34, ~@47 bb3@28 ~@20 c4@16 bb3@30 ~@34 bb3@29 ~@2 bb3@14 ~@36, ~@207 c4@31 ~@18]/8", // Cm Gbm C5 Am Abdim D5 Gm
  B: "[~@15 [g3,eb4]@16 [a3,d4]@15 ~ g3@4 ~@5 f3@4 ~@3 eb3@13 ~@4 g3@14 ~@33 eb4@14 ~@3 [eb4,e4] ~ eb4@12 ~ [b3,d4], ~@15 c4@32 [bb3,d4]@31 ~ [c4,eb4]@32 ~@49, ~@94 a3@13 ~@4 [bb3,d4]@32 [a3,c4]@16 ~, ~@95 f3@31 f3@16 ~@18]/5", // Cm D5 Emaj7 Bm Bb Cm Bb Am
  C: "[~@15 g3@6 ~@2 f3@4 ~@4 [eb3,eb4]@15 ~ [g3,bb3,eb4]@16 [gb3,a3]@12 ~@4 [g3,bb3,d4]@17, ~@15 [bb3,d4]@30 ~@2 c4@32 ~@17, ~@21 d4@5 ~@6]/3", // Eb Gbm Gm Bb
  D: "[~@15 [g3,eb4]@16 [a3,d4]@15 ~ bb3@16 [b3,g4]@15 ~ [g3,eb4]@16 [gb3,a3]@12 ~@4 d4@32 eb4@16 [c4,d4]@15 ~ [g3,bb3,d4,g4]@17, ~@15 c4@32 ~@32 c4@31 ~ g3@46 ~@2 [gb3,a3]@11 ~@22, ~@31 gb3@12 ~@4 [g3,d4]@31 ~@17 d4@15 ~ bb3@23 ~@9 bb3@14 ~@35]/6", // Cm D5 Em Cm Gbm Csus2 Gm Gbm …
  E: "[~@14 [g3,c4,eb4] [g3,eb4]@16 [gb3,a3]@12 ~@4 g3@6 ~ f3@5 ~@4 [eb4,g4]@14 ~@2 g3@15 ~ [f3,a3]@16 f3@11 ~@5 g4@15 ~ [a3,c4]@16 [ab3,b3,d4]@15 ~ g3@7 ~ [f3,f4]@5 ~@3 [eb3,g4]@14 ~@2 [c3,g3,c4,eb4]@17, ~@15 c4@30 ~@2 [bb3,d4]@30 ~@2 [c4,eb4]@32 [bb3,d4]@32 ~@32 [bb3,d4]@31 ~ bb3@14 ~@3, ~@31 d4@15 ~ f4@13 ~@3 eb3@11 ~@150]/7", // Cm Gbm Eb F Am Abdim F Eb …
  F: "[[d3,gb3]@15 [g2,g3,bb3,d4]@31 ~ [c3,c4]@16 ~, a3@3 ~@13]/2", G: "~ [d3,gb3]@29 ~@2", H: "[~@13 d4@43 ~@8]/2",
})).s("gm_string_ensemble_2").gain(0.07)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@17 A@2 ~@7 B@2 ~ C@2 ~@11 D@2 B@2 E F G ~ H@2>".pickRestart({
  A: "[~@13 bb3 ~@17 gb3@13 ~@20]/2", B: "[~@31 eb4@16 ~@17]/2", C: "[~@31 ab3@13 ~@20]/2",
  D: "[~@31 eb4@33, ~@31 eb3@13 ~@20]/2", E: "d4@13 ~@19", F: "~@8 eb4@7 ~, ~@15 g3@15 ~@2", G: "~ [a3,c4]@14 ~",
  H: "[~@13 [g2,g3,bb3]@43 ~@8]/2", // Gm
})).s("gm_string_ensemble_2").gain(0.04)

// drums · kick
const kick = s("bd").struct("<~@19 [~@13 x ~ x ~@13 x ~ x] [~@15 x ~@13 x ~ x]!26 ~@6>").gain(0.32)

// drums · rim
const rim = s("rim").struct("<~@13 A ~ B ~@3 C D E D F D ~@2 G ~ H ~ I ~ J K J I J ~@3 K ~ J ~ J ~@6>".pickRestart({
  A: "~@9 x!2 ~ x ~@19", B: "~@9 x!3 ~@20", C: "~@5 x!3 ~@15 x ~@8", D: "~@23 x ~@8", E: "~@9 x!2 ~@2 x ~ x ~@7 x ~@8",
  F: "~@9 x!3 ~@11 x ~@8", G: "~@9 x!2 ~@2 x ~ x ~@16", H: "~@9 x!2 ~@21", I: "~@10 x!2 ~ x ~ x ~@16",
  J: "~@10 x!2 ~@20", K: "~@9 x!3 ~ x ~ x ~@16",
})).gain(0.32)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@31 [~@9 x ~@22] ~@3 [~@9 x ~@22]!3 ~@5 [~@9 x ~@22] ~@8>").gain(0.16)

// drums · hihat
const hihat = s("hh").struct("<~@19 A B@4 C D E@7 F G H I E J K J L M N J O ~@6>".pickRestart({
  A: "~@15 x ~@3 x ~ x ~ x ~@3 x ~ x ~ x", B: "~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x",
  C: "~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~@3 x", D: "~@15 x ~@3 x ~ x ~ x ~@3 x ~@3 x",
  E: "~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x", F: "~@15 x ~ x ~ x ~@3 x ~@3 x ~ x ~ x",
  G: "~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x", H: "~ x ~ x ~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~ x ~ x",
  I: "~@3 x ~ x ~ x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x", J: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~@3 x",
  K: "~@15 x ~ x ~ x ~@3 x ~@3 x ~@3 x", L: "~@3 x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x",
  M: "~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x", N: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
  O: "~@3 x ~@3 x ~@3 x ~@3 x ~@7 x ~@8",
})).gain(0.24)

// drums · crash
const crash = s("cr").struct("<~@33 [~@15 x ~@16] ~@18>").gain(0.24)

// drums · congas
const congas = s("conga:13").struct("<~@11 A B@7 ~ C@5 A B@7 D E@5 D E@5 F ~@6>".pickRestart({
  A: "~@23 x ~@8", B: "~@7 x ~@15 x ~@8", C: "~@7 x ~@24", D: "~@21 x ~ x ~ x ~@6", E: "~@5 x ~ x ~@13 x ~ x ~ x ~@6",
  F: "~@5 x ~ x ~@24",
})).gain(0.77)

// drums · congas · soft notes
const congas_soft = s("conga:13").struct("<~@34 [~@9 x ~@22]!5 ~ [~@9 x ~@22]!6 ~@6>").gain(0.39)

// drums · congas
const congas_2 = s("conga:18").struct("<~@12 A@5 ~@9 A@7 B C@5 B C@5 D ~@6>".pickRestart({
  A: "~@11 x ~ x ~@18", B: "~@15 x ~@3 x ~@11 x", C: "~ x ~ x ~@11 x ~@3 x ~@11 x", D: "~ x ~ x ~@28",
})).gain(0.77)

// drums · congas · soft notes
const congas_soft_2 = s("conga:18").struct("<~@33 [~@17 x ~@14]!12 ~@7>").gain(0.39)

// drums · congas
const congas_3 = s("conga:33").struct("<~@11 A ~@13 B ~@7 C D@5 C D@5 E ~@6>".pickRestart({
  A: "~@3 x ~@12", B: "~@7 x ~@24", C: "~@27 x ~@4", D: "~@11 x ~ x ~@13 x ~@4", E: "~@11 x ~ x ~@18",
})).gain(0.77)

// drums · congas · soft notes
const congas_soft_3 = s("conga:33").struct("<~@33 [~@29 x ~@2]!12 ~@7>").gain(0.39)

// drums · ht
const ht = s("ht").struct("<~@33 [~@5 x ~ x ~@3 x ~@20] ~@18>").gain(0.28)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@19 [~@23 x ~@8]!6 ~@27>").gain(2.04)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@11
  [~@15 x ~ x ~ x ~@3 x ~@3 x ~ x ~ x]
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~@3 x ~ x ~ x]!6
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@18]
  ~@33
>`).gain(0.16)

stack(
  bass, acoustic_guitar_nylon, acoustic_guitar_nylon_2, string_ensemble_2, string_ensemble_2_soft, kick, rim, rim_soft,
  hihat, crash, congas, congas_soft, congas_2, congas_soft_2, congas_3, congas_soft_3, ht, cabasa, shaker
)

More by Mariah Carey