Strudelify
Come On Over (All I Want Is You) cover art

Christina Aguilera

Come On Over (All I Want Is You)

Christina Aguilera

KeyE♭ majorTempo120 bpm
0:00/0:00
// Come On Over (All I Want Is You) — Christina Aguilera
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · synth bass 2
const bass = note(`<
  A B A B A B C ~ D E D F D E D F G H I H I H J K A L A L M N O P Q B C ~ D E D F D E D F G H I H I H J K A L A L M N O
  P Q B A R S T@2 U S T@2 V W H X H X H Y Z@2 AA AB AC@4 AD AE AF AG@3 AC@2 AD AE AF AB ~
>`.pickRestart({
  A: "eb1@3 ~@3 eb1@2 g1@3 ~@3 g1@2", B: "ab1@3 ~@3 ab1@2 bb1@3 ~ d1@2 d1@2", C: "eb1@3 ~@3 eb1@2 g1@3 ~@3 ab1@2",
  D: "eb1@3 ~@13", E: "ab1@3 ~@13", F: "ab1@3 ~@5 ab1@3 ~ ab1@3 ~", G: "c2@3 ~@3 eb1@5 ~@3 f1@2",
  H: "f1@3 ~@3 gb1@5 ~ g1@3 ~", I: "c1@3 ~@3 eb1@5 ~@3 f1@2", J: "f1@3 ~@3 f1@9 ~", K: "bb1@3 ~ bb1@3 ~ bb0@7 ~",
  L: "ab1@3 ~@5 bb1@3 ~ bb1@3 ~", M: "c2@3 ~@3 c1@5 ~@5", N: "ab1@5 ~ a1@9 ~", O: "bb2@5 ~ bb0@5 ~@5",
  P: "[bb0,bb1]@3 ~ [bb0,bb1]@3 ~ [bb0,bb1]@2 [bb0,bb1]@2 [eb1,eb2]@2 [bb0,bb1]@2, ~@12 [c1,c2] ~ [c1,c2] ~", // Bb Eb Bb C
  Q: "[c1,c2] ~@5 eb1@2 g1@3 ~@3 g1@2, eb1 ~@3", R: "ab1@3 ~@3 ab1@2 bb1@3 ~@5", S: "eb2@3 ~@5 eb1@3 ~ db1@2 eb1@2",
  T: "~@8 eb1@3 ~ db1@2 eb1@2", U: "~@3 eb1 eb1@2 bb3@2, ~@12 eb1 ~@3", V: "~@3 eb1!3 eb1@2",
  W: "c2@2 c2@2 ~@2 eb1@5 ~@3 f1@2", X: "c1@2 c1@2 ~@2 eb1@5 ~@3 f1@2", Y: "c2@3 ~@3 b1@5 ~ bb1@3 ~",
  Z: "[~@3 f1@13]/2", AA: "~ f1@3 ~@5 f1@3 ~@4", AB: "~ bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3",
  AC: "[~ eb1@3 ~@3 eb1@2 g1@3 ~@3 g1@2 ab1@3 ~@5 bb1@3 ~ bb1@3]/2", AD: "~ c2@3 ~@3 c1@5 ~@4", AE: "~ ab1@5 ~ a1@9",
  AF: "~ bb2@5 ~ bb0@5 ~@4",
  AG: "[~ [bb0,bb1]@3 ~ [bb0,bb1]@3 ~ [bb0,bb1]@2 [bb0,bb1]@2 [eb1,eb2]@2 [bb0,bb1]@2 [c1,c2] ~@5 eb1@2 g1@3 ~@3 g1@2 ab1@3 ~@5 bb1@3 ~ bb1@3, ~@13 [c1,c2] ~ [c1,c2] ~ eb1@4 ~@27]/3", // Bb Eb Bb C
})).s("gm_synth_bass_2").gain(0.8)

// bass · piano
const bass_2 = note(`<
  A B A B A B C ~@9 D@6 E F A G A G H I J K A B C ~@9 D@6 E F A G A G H I J K A B A L ~@8 M@6 N O@2 P Q R@4 S T U V R@4
  S T U Q ~
>`.pickRestart({
  A: "[eb1,eb2]@3 ~@3 [eb1,eb2]@2 [g1,g2]@3 ~@3 [g1,g2]@2", // Eb G
  B: "[ab1,ab2]@3 ~@3 [ab1,ab2]@2 [bb1,bb2]@3 ~ [d1,d2]@2 [d1,d2]@2", // Ab Bb D
  C: "[eb1,eb2]@3 ~@3 [eb1,eb2]@2 [g1,g2]@3 ~@3 [ab1,ab2]@2", // Eb G Ab
  D: "[[c2,c3]@5 ~ [eb1,eb2]@7 ~ [f1,f2]@7 ~ [gb1,gb2]@5 ~ [g1,g2]@3 ~]/2", E: "[f1,f2]@3 ~@3 [f1,f2]@9 ~",
  F: "[bb1,bb2]@3 ~ [bb1,bb2]@3 ~ [bb1,bb2]@7 ~", G: "[ab1,ab2]@3 ~@5 [bb1,bb2]@3 ~ [bb1,bb2]@3 ~", H: "[c2,c3]@15 ~",
  I: "[ab1,ab2]@5 ~ [a1,a2]@9 ~", J: "[bb1,bb2]@15 ~", K: "[bb1,bb2]@3 ~ [bb1,bb2]@3 ~ [bb1,bb2]@3 ~@5",
  L: "[ab1,ab2]@3 ~@3 [ab1,ab2]@2 [bb1,bb2]@3 ~@5", // Ab Bb
  M: "[[c2,c3]@2 [c2,c3]@2 ~@2 [eb1,eb2]@7 ~ [f1,f2]@7 ~ [gb1,gb2]@5 ~ [g1,g2]@3 ~]/2", // C Eb F Gb G
  N: "[c2,c3]@3 ~@3 [b1,b2]@2 ~@4 [bb1,bb2]@3 ~", O: "[~@3 [f1,f2]@13]/2", P: "~ [f1,f2]@3 ~@5 [f1,f2]@3 ~@4",
  Q: "~ [bb1,bb2]@3 ~ [bb1,bb2]@3 ~ [bb1,bb2]@3 ~ [bb1,bb2]@3", // Bb
  R: "[~ [eb1,eb2]@3 ~@3 [eb1,eb2]@2 [g1,g2]@3 ~@3 [g1,g2]@2 [ab1,ab2]@3 ~@5 [bb1,bb2]@3 ~ [bb1,bb2]@3]/2", // Eb G Ab Bb
  S: "~ [c2,c3]@15", T: "~ [ab1,ab2]@5 ~ [a1,a2]@9", U: "~ [bb1,bb2]@15",
  V: "~ [bb1,bb2]@3 ~ [bb1,bb2]@3 ~ [bb1,bb2]@3 ~@4", // Bb
})).s("gm_piano").gain(0.8)

// chords · ocarina
const ocarina = note(`<
  ~@8 A B A C A B A B ~ D ~ D ~ D ~ E ~@12 A B A C A B A B ~ D ~ D ~ D F E ~@21 D ~ D ~ D ~@6 G ~ H ~@5 G ~ I ~@5
>`.pickRestart({
  A: "[eb4,ab4,c5]@3 ~@13", B: "[ab4,c5,eb5]@3 ~@13", C: "[ab4,c5,eb5]@3 ~@5 [ab4,bb4,c5,f5]@3 ~ [ab4,bb4,c5,f5]@3 ~",
  D: "~@8 [ab4,bb4,db5,f5]@3 ~ [ab4,bb4,db5,f5]@3 ~", E: "[ab4,ab5]@3 ~ [ab4,ab5]@3 ~ [ab4,ab5]@7 ~",
  F: "[ab4,bb4,eb5]@15 ~", G: "~@9 [ab4,bb4,eb5]@3 ~ [ab4,bb4,eb5]@3", H: "~@9 [c5,eb5,ab5]@3 ~ [c5,eb5,ab5]@3",
  I: "~@9 [bb4,db5,f5,ab5]@3 ~ [bb4,db5,f5,ab5]@3", // Bbm7
})).s("gm_ocarina").gain(0.72)

// chords · harpsichord · "Tout Droits Réervées"
const harpsichord = note("<~@16 A@6 B C ~@20 A@6 B C ~@20 A@6 ~@22>".pickRestart({
  A: "[c4@3 ~ [eb4,g4]@2 bb3@4 [eb4,g4]@4 a3@4 [eb4,g4]@4 ab3@5 ~ g3@4, ~@28 bb3 ~@3]/2", B: "~@2 g3@2 ab3@2 eb4@9 ~",
  C: "[ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@7 ~", // Ab
})).s("gm_harpsichord").gain(0.56)

// chords · piano · "out permission"
const piano = note("<~@28 A B C D ~@24 A B C D ~@19 E@2 F G ~@4 H I J K@2 ~@3 H I J L ~>".pickRestart({
  A: "[c4,eb4,g4]@11 ~@5", B: "[c4,eb4,ab4]@3 ~@3 [c4,gb4,a4]@9 ~", C: "[c4,eb4,ab4,bb4]@15 ~",
  D: "[bb1,bb2] [bb3,bb4] bb2 [bb2,bb3,bb4] [bb1,bb2] [bb3,bb4] bb2 [bb2,bb3,bb4]", E: "[~@3 [g4,b4,d5]@13]/2",
  F: "~ [c4,eb4,ab4]@3 ~@5 [c4,eb4,ab4]@3 ~@4", // Ab
  G: "~ [c4,eb4,ab4]@3 ~ [c4,eb4,ab4]@3 ~ [c4,eb4,ab4]@3 ~ [c4,eb4,ab4]@3", H: "~ [c4,eb4,g4]@11 ~@4",
  I: "~ [c4,eb4,ab4]@3 ~@3 [c4,gb4,a4]@9", J: "~ [c4,eb4,ab4,bb4]@15",
  K: "[~ [bb1,bb2]@2 [bb3,bb4]@2 bb2@2 [bb2,bb3,bb4]@2 [bb1,bb2]@2 [bb3,bb4]@2 bb2@2 [bb2,bb3,bb4]@2 ~@15]/2", // Bb
  L: "~ [c4,eb4,ab4,bb4]@3 ~ [c4,eb4,ab4,bb4]@3 ~ [c4,eb4,ab4,bb4]@3 ~ [c4,eb4,ab4,bb4]@3", // Ab
})).s("gm_piano").gain(0.48)

// other · lead 2 sawtooth · "mm3k"
const lead_2_sawtooth = note(`<
  A B A B A B C ~ D E D F D E D F G H I H I H J K A L A L M N O P Q B C ~ D E D F D E D F G H I H I H J K A L A L M N O
  P Q B A R S@7 T U H V H V H W ~@2 X@4 Y@2 Z AA AB AC@3 Y@2 Z AA AB AD ~
>`.pickRestart({
  A: "eb2@3 ~@3 eb2@2 g2@3 ~@3 g2@2", B: "ab2@3 ~@3 ab2@2 bb2@3 ~ d2@2 d2@2", C: "eb2@3 ~@3 eb2@2 g2@3 ~@3 ab2@2",
  D: "eb2@3 ~@13", E: "ab2@3 ~@13", F: "ab2@3 ~@5 ab2@3 ~ ab2@3 ~", G: "c3@3 ~@3 eb2@5 ~@3 f2@2",
  H: "f2@3 ~@3 gb2@5 ~ g2@3 ~", I: "c2@3 ~@3 eb2@5 ~@3 f2@2", J: "f2@3 ~@3 f2@9 ~", K: "bb2@3 ~ bb2@3 ~ bb1@7 ~",
  L: "ab2@3 ~@5 bb2@3 ~ bb2@3 ~", M: "c3@3 ~@3 c2@5 ~@5", N: "ab2@5 ~ a2@9 ~", O: "bb3@5 ~ bb1@5 ~@5",
  P: "[bb1,bb2]@3 ~ [bb1,bb2]@3 ~ [bb1,bb2]@2 [bb1,bb2]@2 [eb2,eb3]@2 [bb1,bb2]@2, ~@12 [c2,c3] ~ [c2,c3] ~", // Bb Eb Bb C
  Q: "[c2,c3] ~@5 eb2@2 g2@3 ~@3 g2@2, eb2 ~@3", R: "ab1@3 ~@3 ab1@2 bb1@2 eb3@2 eb3@2 eb3@2", S: "eb3!8",
  T: "eb3!4 eb3@2 ~@2", U: "c3@2 c3@2 ~@2 eb2@5 ~@3 f2@2", V: "c2@2 c2@2 ~@2 eb2@5 ~@3 f2@2",
  W: "c3@3 ~@3 b2@5 ~ bb2@3 ~",
  X: "[~@15 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb1@4 ~@2 eb1@2 g1@3 ~@3 g1@2 ab1@3 ~@5 bb1@3 ~ bb1@3, ~@33 eb3 ~@30]/4",
  Y: "[~ eb1@3 ~@3 eb1@2 g1@3 ~@3 g1@2 ab1@3 ~@5 bb1@3 ~ bb1@3]/2", Z: "~ c2@3 ~@3 c1@5 ~@4", AA: "~ ab1@5 ~ a1@9",
  AB: "~ bb2@5 ~ bb0@5 ~@4",
  AC: "[~ [bb0,bb1]@3 ~ [bb0,bb1]@3 ~ [bb0,bb1]@2 [bb0,bb1]@2 [eb1,eb2]@2 [bb0,bb1]@2 [c1,c2] ~@5 eb1@2 g1@3 ~@3 g1@2 ab1@3 ~@5 bb1@3 ~ bb1@3, ~@13 [c1,c2] ~ [c1,c2] ~ eb1@4 ~@27]/3", // Bb Eb Bb C
  AD: "~ bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3",
})).s("gm_lead_2_sawtooth").gain(0.56)

// other · string ensemble 1 · "MIDI MAN!A! 3000!"
const string_ensemble_1 = note(`<
  ~@16 A@6 B C D@7 E F ~@11 A@6 B C D@7 E F ~@11 A@6 G ~@2 H I J@7 K@2 J@6 I ~
>`.pickRestart({
  A: "[[c3,c4]@5 ~ [eb2,eb3]@7 ~ [f2,f3]@7 ~ [gb2,gb3]@5 ~ [g2,g3]@3 ~]/2", B: "[f2,f3]@15 ~",
  C: "[bb2,bb3,bb4]@3 ~ [bb2,bb3,bb4]@3 ~ [bb2,bb3,bb4]@3 ~@5", // Bb
  D: "[eb4,eb5,eb6]@3 ~ [eb4,eb5,eb6]@3 ~ [eb4,eb5,eb6]@3 ~ [eb4,eb5,eb6]@3 ~", // Eb
  E: "[bb4,bb5] [bb2,bb3] [bb2,bb4,bb5] [bb2,bb3] [bb4,bb5] [f3,f4,f5] [bb3,bb4,bb5] [bb2,bb3,bb4], ~@4 bb3 ~@7 [g3,g4,g5] ~ [g3,g4,g5] ~", // Bb F Bb G
  F: "[c3,eb3,eb4,eb5] ~@3, [c4,c5] ~@15", G: "[c4,c5,c6]@3 ~@3 [b3,b4,b5]@2 ~@4 [bb3,bb4,bb5]@3 ~",
  H: "~ [ab3,ab4,ab5]@3 ~@5 [ab3,ab4,ab5]@3 ~@4", // Ab
  I: "~ [bb3,bb4,bb5]@3 ~ [bb3,bb4,bb5]@3 ~ [bb3,bb4,bb5]@3 ~ [bb3,bb4,bb5]@3", // Bb
  J: "~ [eb4,eb5,eb6]@3 ~ [eb4,eb5,eb6]@3 ~ [eb4,eb5,eb6]@3 ~ [eb4,eb5,eb6]@3", // Eb
  K: "[~ [bb4,bb5]@2 [bb2,bb3]@2 [bb2,bb4,bb5]@2 [bb2,bb3]@2 [bb4,bb5]@2 [f3,f4,f5]@2 [bb3,bb4,bb5]@2 [bb2,bb3,bb4]@2 [c3,eb4,eb5,eb6]@4 [eb4,eb5,eb6]@3 ~ [eb4,eb5,eb6]@3 ~ [eb4,eb5,eb6]@3, ~@5 bb3 ~@7 [g3,g4,g5] ~ [g3,g4,g5] ~ [c4,c5] ~@14]/2", // Bb F Bb Cm Eb G C
})).s("gm_string_ensemble_1").gain(0.56)

// other · overdriven guitar
const overdriven_guitar = note("<~@76 A@2 ~@22>".pickRestart({
  A: "[c5@3 ~ bb4@3 ~ bb4@3 ~ c5@2 bb4@17 ~]/2",
})).s("gm_overdriven_guitar").gain(0.48)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@16 A@6 B C D ~@3 E ~@15 A@6 B C D ~@3 E ~@7 F ~@3 F ~@3 G@6 H ~@4 I ~@3 J ~@3 I ~@3 J ~@2 K ~
>`.pickRestart({
  A: "[c3@5 ~ eb2@7 ~ f2@7 ~ gb2@5 ~ g2@3 ~]/2", B: "f2@15 ~", C: "bb2@3 ~ bb2@3 ~ bb2@7 ~", D: "[eb3,bb3]@3 ~@13",
  E: "[c3,g3]@3 ~@13", F: "[bb2,eb3]@3 ~@13", G: "[[c3,g3]@2 [c3,g3]@2 ~@2 eb2@7 ~ f2@7 ~ gb2@5 ~ g2@3 ~]/2",
  H: "c3@3 ~@3 b2@5 ~ bb2@3 ~", I: "~ [eb3,bb3]@3 ~@12", J: "~ [c3,g3]@3 ~@12",
  K: "~ [bb2,f3,bb3]@3 ~ [bb2,f3,bb3]@3 ~ [bb2,f3,bb3]@3 ~ [bb2,f3,bb3]@3", // Bb5
})).s("gm_distortion_guitar").gain(0.48)

// chords · rock organ
const rock_organ = note("<~@28 A B C D ~@24 A B C D ~@19 E ~ F@2 ~@4 G@2 H I ~@4 G@2 H J ~>".pickRestart({
  A: "~@14 [f3,g3,a3,b3] ~, ~@7 e3", B: "[c4,d4,e4,f4,g4,a4,b4] [c5,eb5,ab5]@3 ~@2 [c5,gb5,a5]@9 ~",
  C: "[bb4,eb5,bb5]@15 ~", D: "[bb4,eb5,f5,bb5]@3 ~ a4@2 [c4,d4,e4,f4,g4] [a3,b3] g3@3 ~@5",
  E: "~@4 [g2,a2,b2,c3] ~ [f3,g3,a3,b3,c4,d4] [e4,f4,g4,d5,g5,b5] ~@8, ~@2 [d3,e3] ~@5", // Cmaj7 Dm7 Em7 Dsus2
  F: "[~@15 [c3,d3,e3,f3,g3]@2 [a3,b3,c4,d4,e4] [c5,eb5,ab5]@3 [c5,eb5,ab5]@3 ~ [c5,eb5,ab5]@3 ~ [c5,eb5,ab5]@3, ~@18 f4 ~@13]/2", // C Am Ab
  G: "[~@15 [f3,g3] [a3,b3] [c4,d4,e4,f4,g4] [c5,eb5,ab5]@3 ~@2 [c5,gb5,a5]@9, ~@15 e3@2 ~ [a4,b4] ~@13]/2", // Fsus2 Asus2 C Ab Gbdim Asus2
  H: "~ [bb4,eb5,bb5]@15", I: "~ [bb4,eb5,f5,bb5]@3 ~ a4@2 [d4,e4,f4,g4] [a3,b3,c4] g3@3 ~@4",
  J: "~ [bb4,eb5,bb5]@3 ~ [bb4,eb5,bb5]@3 ~ [bb4,eb5,bb5]@3 ~ [bb4,eb5,bb5]@3", // Eb5
})).s("gm_rock_organ").gain(0.48)

// other · brass section · "us credit!"
const brass_section = note("<~@72 A ~ A ~ A ~ B ~@4 C ~@3 D ~@3 C ~@3 D ~@2 E ~>".pickRestart({
  A: "[c5,c6]!2 ~@6", B: "[c4,c5,c6]@3 ~@3 [b3,b4,b5]@2 ~@4 [bb3,bb4,bb5]@3 ~",
  C: "~ [eb5,eb6]@2 [d5,d6]@2 [b4,b5]@4 ~@7, ~@5 [db5,db6] ~@10", // Eb D B Db
  D: "~ [g4,eb5,c6]@2 [gb4,db5,d5,bb5,b5]@2 [eb4,e4,b4,c5,ab5,a5] ~@10, ~@5 [d4,bb4,g5]@4 ~@7", // Cm Gb Emaj7 Gm
  E: "~ [bb3,bb4,bb5]@3 ~ [bb3,bb4,bb5]@3 ~ [bb3,bb4,bb5]@3 ~ [bb3,bb4,bb5]@3", // Bb
})).s("gm_brass_section").gain(0.48)

// other · electric guitar muted
const electric_guitar_muted = note("<~@36 A B C D A B C B ~@56>".pickRestart({
  A: "~@2 eb3!2 [bb2,eb3] eb3 ~@2", B: "~@4 eb3@2 eb3@2 [eb3,f3]@2 bb3@2 g3@3 ~", C: "~@2 eb3!2 [bb2,eb3] eb3 bb2 eb3",
  D: "~@2 eb3!2 [eb3,f3] bb3 f3 bb3", // Ebsus2
})).s("gm_electric_guitar_muted").gain(0.48)

// other · synth drum · "I AM CANADIAN!"
const synth_drum = note(`<
  ~@11 A B C D E F G H G H G H I J ~@10 K L ~@2 A B C D E F G H G H G H I J ~@20 G H G H G H ~@21
>`.pickRestart({
  A: "~@7 a3", B: "a2@3 ~@13", C: "~@5 d3 ~@2", D: "~@5 e3 ~@2", E: "~@4 e3 f3!3", F: "f3@3 ~@13", G: "~@7 g3",
  H: "g2@3 ~@13", I: "~ g3 c3 g3 c3 g3!3, ~@12 c3 ~ c3 ~", J: "c3@3 ~@13",
  K: "~ d5 c5 b4 g4 e4 c4 a3, ~@8 a4 ~ f4 ~ d4 ~ b3 ~", L: "g3@3 ~@13",
})).s("gm_synth_drum").gain(0.48)

// drums · rim
const rim = s("rim").struct("<[~ x ~ x]!4 ~@78 [~@5 x ~@7 x ~@2] ~@17>").gain(0.72)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A B C D E B C B F B C B G B C B H B C B I B C B J B C B K B C B L B C B F B C B G B C B H B C B I B C B J B C B K
  B C B M N O@2 P N O@2 Q R C R H R C S T ~ U V W X Y Z Y X Y AA Y X Y Z Y X Y AB ~
>`.pickRestart({
  A: "~@2 x!2 ~@2 x!2 ~@2 x!6", B: "x ~@2 x ~@3 x", C: "x ~@2 x ~@2 x ~@9", D: "x ~@6 x",
  E: "~@2 x!2 ~@2 x!2 ~ x ~@2 x ~@3", F: "x ~@2 x ~@4 x ~@2 x ~@2 x!2", G: "x ~@2 x ~@4 x ~@2 x ~ x!3",
  H: "x ~@2 x ~@2 x ~@7 x!2", I: "x ~ x!3 ~ x!3 ~ x!6", J: "x ~@2 x ~@4 x ~@2 x ~@4", K: "x ~@2 x ~@4 x ~@2 x!2 ~ x ~",
  L: "~@2 x!2 ~@2 x!10", M: "x ~@2 x ~@2 x ~ x ~@7", N: "x ~@7 x ~@2 x ~@2 x ~", O: "~@8 x ~@2 x ~@2 x ~",
  P: "~@6 x!3 ~@2 x ~@4", Q: "~@6 x!2 ~@3 x ~@4", R: "x!2 ~ x ~@3 x", S: "x ~@2 x ~@2 x ~", T: "~@3 x ~@4",
  U: "~ x ~@7 x ~@5 x", V: "x!2 ~ x!2 ~@2 x!2 ~@2 x!5", W: "x!2 ~@5 x ~@7 x", X: "~ x ~@2 x ~@2 x ~@8",
  Y: "~ x ~@5 x ~@7 x", Z: "~ x ~@2 x ~@4 x ~@2 x ~@3", AA: "~ x ~@2 x ~@4 x ~@2 x!2 ~ x",
  AB: "~ x ~@3 x ~@3 x ~@3 x ~@2",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B@2 C D B@20 E B@2 F B@2 G ~ B@20 E B@2 F B@3 H I@3 J B@3 K B@5 L M N ~@2 O P@4 Q P@2 R P@4 Q P@2 S ~
>`.pickRestart({
  A: "~@4 x ~@3 x!2 ~@6", B: "~ x ~ x", C: "~@2 x ~@4 x", D: "~@9 x ~@2 x ~@3", E: "~@3 x ~@8 x ~@3",
  F: "~@3 x ~@6 x ~@2 x ~@2", G: "~@2 x ~@3 x!2", H: "~ x!2 ~", I: "~ x ~@2", J: "~ x!2 ~@3 x ~",
  K: "~@4 x ~@3 x!2 ~@2 x ~@3", L: "~@2 x ~@2 x!2 ~", M: "x ~@2 x ~@2 x ~", N: "~@3 x ~@4", O: "~@5 x ~@3 x!2 ~@5",
  P: "~@5 x ~@7 x ~@2", Q: "~@4 x ~@8 x ~@2", R: "~@4 x ~@6 x ~@2 x ~", S: "~ x ~@3 x ~@3 x ~@3 x ~@2",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~@4 A@3 ~ A@27 ~ A@27 B A@7 C A@6 D ~@4 E@15 ~@2>".pickRestart({
  A: "x!8", B: "x!4 ~@4", C: "x!7 ~", D: "x ~@2 x ~@2 x ~", E: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~@3 A ~@7 A ~@7 A ~@3 A ~@3 A ~@3 A ~@7 A ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 B ~ C D E ~@3 E ~@3 E
  ~@3 E ~@2 D ~
>`.pickRestart({
  A: "x", B: "~@3 x ~@4", C: "~ x ~@7 x ~@6", D: "~ x ~@3 x ~@3 x ~@3 x ~@2", E: "~ x ~@14",
})).gain(0.72)
// … 52 more lines

More by Christina Aguilera