Strudelify
Someday cover art

1990 · Mariah Carey

Someday

Mariah Carey

KeyD majorTempo128 bpm
0:00/0:00
// Someday — Mariah Carey
// 128 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 170 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger
const bass = note(`<
  ~@2 A@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 F G H I J K L M N G H I J K L M N G H I J K L M F G H I J K L M F G O P Q R S T U
  V O P Q R S T U V O P Q R S T U V O P Q R S T U V O P Q R S T U V O P Q R S T U V O P Q R S T U V O P Q R S T U V O P
  Q R S T U V O P Q R W X U V O P Q R S T U V O P Q R S T U V O P Q R S T U V O P Q R S T U V O P Q R S ~
>`.pickRestart({
  A: "e2/2", B: "[a1@7 a1]/2", C: "[d2@7 d2]/2", D: "[c2@7 ~]/2", E: "[e2@15 e2]/2",
  F: "e1@3 ~ e1@2 ~@2 e1@2 d1@2 e1@2 g1@2", G: "e1 ~ e1@2 ~@4 e1@2 d1@2 e1@2 g1@2", H: "a1 ~ a1 ~ a1 g1 a1 c2",
  I: "a1!2 ~@2 a1 g1 c2 a1", J: "d2 ~ d2 ~ d2 a1 c2 d2", K: "~ d2 ~ d2 ~ d2 ~ d2", L: "g2 ~ g2 ~ g2 g1 a1 c2",
  M: "~ g1 a1 c2 ~ a1 c2 d2", N: "e1 ~ e1 ~ e1 d1 e1 g1", O: "~ a1@4 ~@4 a1@4 ~@4 a1@4 g1@4 a1@4 c2@3",
  P: "~ a1@4 a1@4 ~@8 a1@4 g1@4 c2@4 a1@3", Q: "~ d2@4 ~@4 d2@4 ~@4 d2@4 a1@4 c2@4 d2@3",
  R: "~@5 d2@4 ~@4 d2@4 ~@4 d2@4 ~@4 d2@3", S: "~ g2@4 ~@4 g2@4 ~@4 g2@4 g1@4 a1@4 c2@3",
  T: "~@5 g1@4 a1@4 c2@4 ~@4 a1@4 c2@4 d2@3", U: "~ e1@6 ~@2 e1@4 ~@4 e1@4 d1@4 e1@4 g1@3",
  V: "~ e1@2 ~@2 e1@4 ~@8 e1@4 d1@4 e1@4 g1@3", W: "~ g1@4 ~@4 g1@4 ~@8 g1@4 a1@4 c2@3",
  X: "~@5 g1@4 a1@4 c2@4 g1@4 a1@4 c2@4 d2@3",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · pad warm
const pad_warm = note("<~@2 A@2 B@4 C@4 D@4 C@4 B@4 C@4 D@4 E@128 F@8 G@2>".pickRestart({
  A: "[b3,d4]/2", B: "[~ c4@62 ~ d4@64, ~ a3@126 ~]/4", C: "[e4 d4, b3]/4", D: "[c4@31 ~ d4@32, a3@63 ~]/4",
  E: "[~ e4@64 d4@64 c4@62 ~@2 d4@63, ~ b3@128 a3@126 ~]/8",
  F: "[~@65 d4@64 c4@62 ~@2 d4@63, ~ [b3,e4]@80 ~@48 a3@126 ~]/8", G: "[~ [b3,e4]@58 ~@5]/2",
})).s("gm_pad_warm").gain(0.22)

// other · string ensemble 2
const string_ensemble_2 = note(`<
  ~@18 A@4 B@2 C@2 ~@32 D@4 B@2 C@2 ~@2 E@8 F@2 G@2 H I ~@8 J@2 F@2 G@2 H I K@6 L@8 J@2 D@4 M@4 D@4 N@4 D@4 M@4 D@4 M@4
  D@4 M@4 D@4 M@4 D@4 O@4
>`.pickRestart({
  A: "[g5@127 ~]/4", B: "f#5/2", C: "e5/2", D: "[~ g5@127]/4", E: "[~ e4@64 a4@64 g4@64 b4@62 ~]/8", F: "[c5@3 e5]/2",
  G: "d5/2", H: "e5", I: "g5", J: "[~ b4@62 ~]/2", K: "[~@9 b5@16 g5@15 ~ a5@14 e5@74 d5@63]/6",
  L: "[~ b4@72 b5@16 g5@15 ~ a5@14 e5@74 d5@63]/8", M: "[~ f#5@63 e5@64]/4",
  N: "[~ f#5@64 ~@32 g6@31, ~@65 [b3,e5]@63, ~@33 e6@31]/4", O: "[~ f#5@64 e5@58 ~@5]/4",
})).s("gm_string_ensemble_2").gain(0.25)

// chords · percussive organ
const percussive_organ = note(`<
  ~@18 A@2 B@4 C@2 ~@32 D@2 B@4 E@2 ~@48 F@2 G@4 H@2 F@2 G@4 H@2 F@2 G@4 H@2 F@2 G@4 H@2 F@2 G@4 H@2 F@2 G@4 H@2 F@2 G@4
  I@2
>`.pickRestart({
  A: "[[b4,d5,g5]@63 ~]/2", B: "[~ c5@63 [d5,f#5]@64, ~ a4@127]/4", C: "[[b4,e5,g5]@63 ~]/2", D: "[~ [b4,d5,g5]@63]/2",
  E: "[~ [b4,e5,g5]@63]/2", F: "[~ [b4,d5]@63]/2", G: "[~ c5@63 ~ d5@63, ~ a4@127]/4", H: "[~ [b4,e5]@63]/2",
  I: "[~ [b4,e5]@57 ~@6]/2", // E5
})).s("gm_percussive_organ").gain(0.12)

// other · alto sax
const alto_sax = note(`<
  ~@18 A@2 B@2 C D E@2 ~@32 F@2 G@3 H I J@2 ~@46 K@2 L M@2 N O P@2 Q R ~ S T ~@2 U@2 V@2 ~@3 W@2 ~ X@2 Y ~ Z AA AB F@2
  G@3 H AC AD@3 G@3 H AC AE F@2 G@3 H AC AF
>`.pickRestart({
  A: "[~@4 a4@11 ~]/2", B: "[~@12 e4@2 ~@2 b4@6 c5 b4 a4@40]/2", C: "~@12 a4 ~@3 b4@12 d5@2 ~@2",
  D: "a4@11 ~ b4@2 ~@2 d4@12 d4@3 ~", E: "[~ d4@2 e4 ~ e4@51 ~@8]/2", F: "[~@17 a4@44 ~@3]/2",
  G: "[~@13 e4@2 ~@2 b4@6 c5 b4 a4@40 ~@12 a4 ~@3 b4@12 d5@2 ~]/3", H: "~ a4@11 ~ b4@2 ~@2 d4@12 d4@3",
  I: "~ d4@3 e4 ~ e4@26", J: "[g4@4 a4@9 c5@4 b4@7 ~ e4@2 ~@2 e4@12 ~@23]/2",
  K: "[~@13 g4@2 ~@2 b4@8 g4@4 e4@19 ~ b3@4 d4@4 e4@3 ~ g4@3]/2", L: "~@5 f#4@8 e4@12 e4@2 d#4 ~ d4@3",
  M: "[~@13 e4@4 g4@8 a4@4 c5@6 ~@2 b4@4 a4@4 g4@11 ~ d5@7]/2", N: "~ a4@12 g4@3 ~ a4@10 ~@2 b4@2 ~",
  O: "~ f4@2 e4@2 d4@2 ~@2 e4@2 ~@2 d4@10 ~@2 e4@2 ~@5",
  P: "[~@5 d4@4 e4@3 ~ g4@3 ~ a4@4 g4@2 ~@6 g5@24 e5 ~@3 b4@2 a4 b4 g4@3]/2", Q: "~ e4@31", R: "~@25 a4@3 ~ g4@2 ~",
  S: "~@25 d5@7", T: "~ a4@10 a4 b4 g4@4 a4@4 a4@4 ~@7", U: "[~@13 a4@2 ~@2 b4@7 ~ a4@2 ~@2 g4@10 ~@25]/2",
  V: "[~@25 g4 ~@3 g4@12 ~@23]/2", W: "[~ b4@4 d5@2 ~@2 e5@2 ~@2 g5@25 ~@3 a4@4 b4@2 g4@2 a4@4 g4@8 ~@3]/2",
  X: "[~@13 e5@8 d5@2 b4@2 d5@2 b4@2 a4 ~ b4@2 ~ a4@8 ~@22]/2", Y: "~ g4@12 e4@2 c4@2 a3@3 ~@12",
  Z: "~ g4 ~ g4@2 ~@4 g4 ~@3 g4!2 ~@4 g4 ~ g4 ~@3 g4@4 a4@2 ~",
  AA: "~ e4 g4@3 ~@2 g4 g4@3 ~@2 g4 g4@3 ~@2 g4 ~ g4@2 ~@2 e4@5 ~ g4",
  AB: "b4 g4 ~ g4@2 b4 g4 b4@2 g4 b4@2 ~ b4@19, ~@3 b4 ~@28", AC: "~@2 d4@3 e4 ~ e4@25",
  AD: "[~ g4@4 a4@8 c5@5 b4@7 e4@2 ~@2 e4@20 a4@44 ~@3]/3", AE: "~ g4@30 ~", AF: "~ g4@26 ~@5",
})).s("gm_alto_sax").gain(0.35)

// chords · piano
const piano = note(`<
  ~@2 A@2 B@2 C@2 D E F@4 G@2 H@2 I@2 J K L@2 M@2 ~@16 N O P K Q R S@2 N T U@2 V@2 S@2 W@2 J K X@2 S@2 N O P K Q R S@2 N
  Y Z@2 V@2 S@2 N AA P AB Q R S@2 N Y Z@2 V@2 S@2 N AC AD AB Q AE S@2 N AF Z@2 V@2 S@2 AG@4 AH@2 AI@2 AJ AK AL@2 AH@2
  AM@2 N Y AN@2 V@2 S@2 N Y AN@2 V@2 S@2 N Y AN@2 V@2 S@2 N Y AN@2 V@2 S@2 N Y AN@2 V@2 AO@2
>`.pickRestart({
  A: "[[b3,d4,e4]@42 ~@2 [b3,d4]@7 ~ [b3,e4]@12]/2", B: "[[a3,c4,e4]@41 ~@11 g4@10 ~@2, ~@44 [a3,c4,e4]@19 ~]/2",
  C: "[[d4,f#4]@51 ~ [d4,f#4]@12]/2", D: "[b3,e4,g4]@15 b4", E: "g4@2 [b3,e4]@13 ~ g4@8 [b3,e4]@8, ~@16 b3@5 ~@11",
  F: "[[b3,d4,e4]@48 ~@4 [b3,g4]@12 [a3,c4]@41 ~@11 g4@10 ~@2, ~@52 e4@24 ~@32 [a3,c4,e4]@19 ~]/4", // E7 Em Am
  G: "[[d4,f#4]@51 ~@2 [d4,f#4]@11]/2", H: "[~ [e4,g4,b4]@25 ~@10 g4@28, b3@25 ~@3 [b3,e4]@36]/2",
  I: "[[e4,g4]@39 ~ d4 ~@3 [d4,e4,g4]@7 ~ g4@6 ~@2 g4@4, ~@13 [d4,e4]@3]/2", J: "~ e4@27 ~@4, c4@7 ~",
  K: "~@12 [e4,g4]@7 ~ [e4,g4]@11 ~", L: "[~ f#4@42 ~ [d4,f#4,a4]@7 ~@2 d4@8 ~@3, d4@42 ~@10 [f#4,a4]@9 ~@3]/2",
  M: "[~ [e4,g4,b4]@23 ~@5 b4@13 ~@2 [e4,g4]@7 ~ [e4,g4]@9 ~@3, ~@24 e4@19 ~@21, ~@28 g4@15 ~@21]/2", // Em
  N: "~ [e4,g4]@24 ~@7", O: "~@8 d4 ~@4 e4@6 ~ [d4,e4,g4,b4]@12, ~@12 [d4,g4,b4]@7 ~@13",
  P: "~ e4@28 ~@3, c4@7 ~, ~ a4@16 ~@15", Q: "~ [d4,f#4]@31", R: "~@13 [f#4,a4]@7 ~ [d4,f#4,a4]@9 ~@2, ~@12 d4@7 ~@13",
  S: "[~ [e4,g4,b4]@23 ~@5 [g4,b4]@15 ~ [e4,g4]@7 ~ [e4,g4]@9 ~@2, ~@25 e4@18 ~@21]/2", // Em G Em
  T: "~@8 d4 ~@4 e4@6 ~ [d4,e4,g4,b4]@12, ~@12 [d4,g4,b4]@7 ~@13, ~@13 a3@17 ~@2", // Em7 G
  U: "[~ [a3,a4]@18 ~ a3@17 ~@8 g4@6 ~ [a3,e4,g4]@12, c4@7 ~@9, ~ e4@28 ~@15 e4@6 ~@14]/2", // A A7
  V: "[~@45 [d4,f#4,a4]@7 ~ [a3,f#4,a4]@11, ~ [d4,f#4]@33 ~@19 d4@8 ~@3, ~@21 a3@27 ~@16]/2", // D
  W: "[~ e4@38 ~ d4 ~@3 [d4,e4,g4]@7 ~ g4@6 ~@2 g4@4, g4@39 ~@13 [d4,e4]@12]/2", // Em7 Dsus2
  X: "[~ [d4,f#4]@42 ~@2 [f#4,a4]@7 ~ [d4,f#4,a4]@9 ~@2, ~@44 d4@7 ~@13]/2", // D F#m D
  Y: "~@9 d4 ~@3 [d4,e4,g4,b4]@7 ~ [d4,e4,g4,b4]@11, ~@13 a3@17 ~@2", // Em7
  Z: "[~ [a3,a4]@18 ~@2 a3@17 ~@7 [e4,g4]@6 ~@2 [a3,e4,g4]@11, ~ [c4,e4]@28 ~@35]/2", // A Em A7 C
  AA: "~@9 d4 ~@3 [e4,b4]@6 ~@2 g4@10 ~, ~@12 [d4,g4]@7 ~ [d4,e4,b4]@12", AB: "~@13 [e4,g4]@7 ~ [e4,g4]@11",
  AC: "~@9 d4 ~@3 [d4,e4,g4,b4]@7 ~ [d4,e4,g4]@11, ~@20 b4@11 ~", AD: "~ [c4,e4]@28 ~@3, ~ a4@16 ~@15",
  AE: "~@13 [d4,f#4,a4]@7 ~ [d4,f#4,a4]@9 ~@2", AF: "~@13 [d4,e4,g4,b4]@7 ~ [d4,e4,g4,b4]@11, ~@13 a3@17 ~@2",
  AG: "[~ [e4,b4] ~@3 [e4,g4,b4]@4 ~@4 [e4,g4,b4]@11 ~ [e4,g4] ~@3 [e4,g4]@5 ~@3 [e4,g4]@5 ~@11 [e4,g4,b4]@6 ~@2 [e4,b4]@4 [e4,c5] ~@3 [e4,g4,c5]@5 ~@3 [e4,g4,c5]@11 ~ [e4,g4] ~@3 [e4,g4]@6 ~@6 c5@6 ~@2 [e4,g4,c5] ~@3 [e4,g4,c5]@8 ~@3, ~ g4@2 ~@58 g4@8 ~@32 [e4,g4]@11 ~@16]/4", // E5 Em E5 C Em C Em
  AH: "[~ [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@11 ~ [d4,f#4,g4]@2 ~@2 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@11 ~ [d4,a4] ~@3 [d4,f#4,a4]@8 ~@3, ~@49 f#4@2 ~@13]/2", // D Gmaj7 D D5 D
  AI: "[~ [b3,e4,g4]@3 ~ [b3,e4,g4]@5 ~@3 [e4,g4]@12 b3@3 ~ g4@12 ~@4 g4@3 ~@5 [b3,e4,g4]@7 ~@4, ~@13 b3@9 ~@7 e4@11 ~@24, ~@29 b3@8 ~@4 [b3,e4]@7 ~@16]/2", // Em E5
  AJ: "~ [e4,g4]@2 ~@2 [b3,e4,g4]@3 ~@5 [b3,g4] ~@3 [b3,d4]@3 ~@4 [b3,g4]@2 ~@3 [b3,e4,g4]@3, ~ b3 ~@11 e4@2 ~@2 g4 ~@5 e4@3 ~@6", // Em Bm Em
  AK: "~@5 [b3,e4,g4]@3 ~ [b3,g4] ~@3 [b3,e4,g4]@7 ~ [b3,e4,g4]@7 ~@4, ~@9 e4@2 ~@21", // Em
  AL: "[~ [e4,c5] ~@3 [e4,g4,c5]@5 ~@3 [e4,g4,c5]@11 ~ [e4,g4] ~@3 [e4,g4]@5 ~@7 c5@6 ~@2 [e4,g4,c5] ~@3 [e4,g4,c5]@8 ~@3, ~ g4@2 ~@34 [e4,g4]@11 ~@16]/2", // C Em C Em
  AM: "[~ [b3,e4,g4]@48 ~@15]/2", // Em
  AN: "[~@2 a4@16 ~@3 a3@17 ~@7 [e4,g4]@6 ~@2 [a3,e4,g4]@11, ~ c4@28 ~@35, ~ a3@18 ~@45, ~@2 e4@27 ~@35]/2", // Em A7
  AO: "[~@2 [e4,g4,b4]@23 ~@4 [g4,b4]@15 ~@20, ~@25 e4@18 ~@21]/2", // Em G
})).s("gm_piano").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@18 A B A B A B A B C@16 D@5 A D A D@32 E@32 D@14 ~ F D@31 G D@7 ~>".pickRestart({
  A: "~ x ~@14 x ~@15", B: "x!2", C: "x!4", D: "~ x ~@15 x ~@14", E: "~ x ~@7 x ~@7 x ~@7 x ~@6", F: "~@17 x ~@14",
  G: "~ x ~@15 x ~@3 x ~@3 x ~@6",
})).gain(0.35)

// drums · clap
const clap = s("cp").struct("<~@18 A@9 B A@3 B@2 C B@47 D B@46 ~ B@40 ~>".pickRestart({
  A: "~ x ~ x", B: "~@9 x ~@15 x ~@6", C: "~@2 x ~@2 x!2 ~", D: "~@9 x ~@11 x ~@3 x ~@6",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@17 A B@23 C@2 B C B C B C@3 B C@5 D C@7 E C@15 F C@15 G C@7 H C@7 G C@7 I C@6 ~ E C@7 I C@7 I C@7 E C@7 I C@7 ~
>`.pickRestart({
  A: "~@9 x ~ x!2 ~ x ~", B: "~ x ~ x", C: "~@9 x ~@15 x ~@6", D: "~@8 x ~@6 x!2 ~@3 x ~@3 x ~ x ~@5",
  E: "~@9 x ~@11 x ~@5 x ~ x ~@2", F: "~@9 x ~@13 x ~ x ~@3 x ~@2", G: "~@9 x ~@6 x ~@6 x ~ x ~ x ~ x ~@2",
  H: "~@9 x ~@15 x ~ x ~@4", I: "~@9 x ~@17 x ~ x ~@2",
})).gain(0.35)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@17 A ~@23 B ~@15 C ~@7 D ~@15 E ~@15 F ~@7 G ~@7 F ~@7 H ~@7 I ~@7 H ~@7 H ~@7 H ~@7 J ~@8
>`.pickRestart({
  A: "~@4 x!5 ~ x ~@5", B: "~@10 x!2 ~@4", C: "~@12 x!3 ~@13 x ~@3", D: "~@6 x ~@10 x!2 ~@6 x ~@6", E: "~@21 x ~@10",
  F: "~@13 x!3 ~@5 x ~@10", G: "~@23 x ~@8", H: "~@25 x ~@6", I: "~@7 x ~@9 x ~ x ~@5 x ~@6", J: "~@25 x ~@5 x",
})).gain(0.15)

// drums · hihat
const hihat = s("hh").struct(`<
  A@2 ~@8 B C B C B C B D B C B C B C B C B C B C B C B D B C B C B C B E B F G F G F G D G F G F G F G H G F G F G F G
  F G F G F G F G H G F G F G F G H G F G F G F G H G F G F G F G H G F G F G F G H G F G F G F G I G F G F G F G F G F
  G F G F G F G F G F G F G F G F G F G F G F G F G F G F G I G F G F G F G F G F G F G F G ~
>`.pickRestart({
  A: "x!4", B: "x ~ x!3 ~ x ~", C: "x!5 ~ x!2", D: "x ~ x ~ x ~ x!4 ~@2 x ~@3", E: "x ~ x ~ x ~ x!4 ~@2 x!4",
  F: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@7 x ~@3 x ~@2", G: "~ x ~@7 x ~@3 x ~@3 x ~@7 x ~@6",
  H: "~ x ~@3 x ~@3 x ~@3 x ~ x ~ x ~ x ~@5 x ~@6", I: "~ x ~@3 x ~@3 x ~@7 x ~ x ~@5 x ~@6",
})).gain(0.2)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@10 A B A B A B A ~ A B A B A B A B A B A B A B A ~ A C A C A B A ~ A C D C A C A ~ A C D C D C D ~ D C D C D C D C D
  C D C D C D ~ D C D C D C D ~ D C D C D C D ~ D C D C D C D ~ D C D C D C D ~ D C D C D C E ~ D C D C D C D C D C D C
  D C D C D C D C D C D C D C D C D C D C D C D C D C E ~ D C D C D C D C D C D C D C D ~
>`.pickRestart({
  A: "~ x ~@3 x ~ x", B: "~@5 x ~@2", C: "~@21 x ~@10", D: "~@5 x ~@15 x ~@7 x ~@2", E: "~@5 x ~@15 x ~@10",
})).gain(0.15)

// drums · mid tom
const mid_tom = s("mt").struct("<~@113 [~@7 x ~@24] ~@7 [~@21 x ~@10] ~@15 [~@21 x ~@10] ~@32>").gain(0.3)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@17 A ~@15 A ~@7 B ~@7 C ~@7 C ~@15 C ~@7 C ~@7 C ~@7 C ~@7 C ~@6 D E ~@38 D E ~@16
>`.pickRestart({
  A: "~@5 x ~ x", B: "~@5 x ~@2", C: "~@21 x ~@7 x ~@2", D: "~@29 x ~@2", E: "~@13 x ~@7 x ~@7 x ~@2",
})).gain(0.25)

// drums · crash
const crash = s("cr").struct(`<
  ~@18 A ~@23 A ~@15 A ~@7 A ~@15 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 B ~@7
>`.pickRestart({
  A: "~ x ~@30", B: "~ x ~@14",
})).gain(0.3)

// drums · bongos
const bongos = s("bongo:18").struct(`<
  ~@10 A@15 B ~@16 C@7 D C@7 E C@7 F C@7 G C@7 E C@7 G C@7 E C@7 G C@6 H ~ C@7 F C@6 ~ H C@7 F C@6 H ~ C@14 H ~ C@6 H ~
>`.pickRestart({
  A: "~@3 x ~@3 x", B: "~@6 x ~@5 x!4", C: "~@13 x ~@15 x ~@2", D: "~@6 x ~@5 x!3 ~", E: "~@13 x ~@11 x ~ x ~ x ~@2",
  F: "~@13 x ~@11 x ~ x ~ x ~ x", G: "~@13 x ~@5 x ~ x ~@3 x ~ x ~ x ~@2", H: "~@13 x ~@18",
})).gain(0.65)

// drums · congas
const congas = s("conga:13").struct(`<
  ~@10 A@16 ~@16 B A@7 B A B@21 C B@15 C B@15 C B@6 D E B@14 ~ F B@14 G H B@14 G H B@6 G I
>`.pickRestart({
  A: "~@2 x!2 ~@12", B: "~@5 x ~ x ~@24", C: "~ x ~ x ~ x ~ x ~@9 x ~@14", D: "~@5 x ~ x ~@17 x ~@6", E: "~@5 x ~@26",
  F: "~@5 x ~ x ~@17 x ~ x ~ x ~ x", G: "~@5 x ~ x ~@17 x ~@3 x!3", H: "x!2 ~@3 x ~@26", I: "x",
})).gain(1.11)

// drums · congas
const congas_2 = s("conga:18").struct("<~@10 A@16 ~@16 B@71 ~ B@14 ~ B@16 C B@15 C B@7 ~>".pickRestart({
  A: "~@5 x ~@2", B: "~@21 x ~@10", C: "~@13 x!5 ~@7 x ~@6",
})).gain(1.11)

// … 24 more lines

More by Mariah Carey