Strudelify
Spanish Eyes cover art

1999 · Millennium

Spanish Eyes

Backstreet Boys

KeyB♭ majorTempo69 bpm
0:00/0:00
// Spanish Eyes — Backstreet Boys
// 69 bpm, 2/4, key A# major. 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 4) are rendered on a constant 2/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(69/2)

// 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 · "WWST"
const bass = note(`<
  ~@11 A@2 B C D E F G H E I J K L M N O P Q R K L M S O T U V W@2 F I X@2 I@2 Y Z D E I AA A@2 B C D E F G H E I J K L
  M N O P Q R K L M S O T U V W@2 AB AC AD AE AF AG AH F AI AJ AK AL AM AC M AN K L M N O P Q R K L M S O T U V W@2 ~@15
>`.pickRestart({
  A: "eb1@3 eb1", B: "f1@3 f1", C: "f2@3 d2", D: "c2@2 ~ c2", E: "c2@3 c2", F: "g1@2 ~ g1", G: "f1@6 f1 d1",
  H: "c1@3 g1", I: "g1@3 g1", J: "f1 c2 f2@2", K: "bb1@5 ~ bb1@2", L: "a1@5 ~ a1@2", M: "g1@5 ~ g1@2", N: "f1@5 ~ f1@2",
  O: "eb2@5 ~ eb2@2", P: "d2@5 ~ d2@2", Q: "eb2@3 eb1", R: "f1 f2", S: "f1@3 d2", T: "d2@3 bb1", U: "eb1@5 ~ eb1 ~",
  V: "f1@4 f2@3 ~", W: "[g1@15 ~]/2", X: "eb2@3 eb2", Y: "bb1@3 bb1", Z: "bb1 d2", AA: "g1@3 f1", AB: "c1@5 ~ g1@2",
  AC: "c2@5 ~ c2@2", AD: "g1@3 d2", AE: "g2@3 d2 g1@4", AF: "bb1@3 bb2", AG: "a2@3 a1", AH: "g2@5 ~ g2@2",
  AI: "d1@5 ~ d1 ~", AJ: "d1@3 a1", AK: "d2@5 ~ d2 ~", AL: "d2 a2", AM: "c2@5 ~ c2 ~", AN: "f1@3 c2 f2@2 f1 ~",
})).s("gm_electric_bass_finger").gain(0.26)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@2 A@6 B@3 ~@2 C@8 D@7 E@5 F@4 ~@18 C@8 D@7 E@5 F@4 ~@2 G@2 H@2 I J H@2 K@4 L@2 M N D@7 E@5 F@4 O@4 ~@15
>`.pickRestart({
  A: "[f5@19 eb5@4 d5@5 c5@3 bb4@20 a4@4 f4@4 d4@4 eb4@12 ~ c4@3 d4@16 bb3]/6",
  B: "[~@4 c4@4 d4@4 eb4@3 ~@16 f2@9 ~@8, ~@15 [f3,c4]@25 ~@8, ~@2 f4@3 ~]/3", // F5
  C: "[[eb3,c4]@31 [d3,bb3]@16 [c3,a3]@16 ~@16 [g3,g4]@16 [g4,bb4]@16 [f3,a3,f4]@8 f4 g4 a4 bb4 ~ f5@2 ~@2, ~@63 [eb3,eb4]@32 ~@28 c5@2 ~@3]/8", // Cm Gm F G Gm F Eb
  D: "[[bb4,bb5]@15 [a4,a5]@16 bb4@16 [f4,f5]@16 [eb4,g4,g5]@16 [d4,f4,f5]@16 [bb3,bb4]@16 [c4,a4], ~@31 bb5@32 ~@49]/7", // Bb A F Eb Dm Bb F
  E: "[~@13 f5 [g5,a5] [bb4,bb5]@16 [a4,c5,a5]@16 [g4,d5]@16 [f4,f5]@16 eb4, ~@47 bb5@32 ~]/5", // Gsus2 Bb Am G5 F
  F: "[[bb4,g5]@15 [d4,bb4,f5]@16 [eb4,f4,bb4]@16 [a3,a4]@14 ~@3]/4", G: "[g3,c4,eb4]/2", H: "[g3,bb3,d4]/2",
  I: "[f3,bb3,d4]", J: "[a3,c4,f4]@15 ~", K: "[g3 gb3, [a3,d4]@5 ~@3]/4", L: "[c3,g3,c4,eb4]/2", M: "[g2,d3,g3,bb3,d4]",
  N: "[f2,c3,f3,a3,c4]", O: "[g2,d3,g3,bb3,d4]/4",
})).s("gm_string_ensemble_2").gain(0.1).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@2 A B C D E F@4 G@2 H@2 I@2 J@2 K@2 L@2 M@2 N@4 O P Q@2 R S T@6 U V W X@3 Y Z U AA AB@2 G@2 H@2 I@2 J@2 K@2 L@2 M@2
  N@4 O P Q@2 AC S T@6 U V W X@3 Y Z U AA AB@2 AD@2 AE@2 AF@2 AG@2 AH@2 AI@2 AJ@2 AK AL T@6 U V W X@3 Y Z U AA AM@5
>`.pickRestart({
  A: "~@3 bb3, bb2, ~ bb3@2 ~, ~ [f3,f4]", B: "~@3 f3, a2, ~ f3@2 ~, ~ f4", C: "~@3 bb3, g2, ~ g3@3, ~ bb3@2 ~, ~ f4",
  D: "~@3 bb3, [f2,f3], ~ bb3@2 ~, ~ [d3,f4]", E: "~@3 bb3, eb3, ~ g3@3, ~ bb3@2 ~, ~ eb4",
  F: "[~@28 bb3@4 ~@16 a3@13 ~@3, d3@16 eb3@16 f3@29 ~@3, ~@4 f3@12 ~@4 g3@12 ~@8 c4@21 ~@3, ~@8 f4@16 f4@20 f4@17 ~@3, ~@12 bb3@8 bb3@8 ~@8 bb3@25 ~@3]/4",
  G: "[~@7 d4, d3, g3@3 d4@3 g4@2, ~ bb3@3 g3@4, ~@2 g4@3 bb3@3]/2",
  H: "[~@7 bb3, eb3 eb3, ~ g3@4 g3@3, ~ eb4@2 eb4, ~@3 bb3@4 ~]/2",
  I: "[~@7 d4, g3@16 g3@15 ~, ~@4 bb3@16 bb3@11 ~, ~@8 g4@16 g4@7 ~, ~@3 d4@4 ~]/2",
  J: "[~@7 f3, bb2@31 ~, ~ f3@2 f3@2 f3@2 ~, ~@8 d4@16 d4@7 ~, ~@16 c4@15 ~]/2",
  K: "[~@7 g3, c3@31 ~, ~ g3@2 g3@2 g3@2 ~, ~@8 eb4@16 eb4@7 ~, ~@16 d4@15 ~]/2",
  L: "[~@7 bb3, d3@31 ~, ~@4 g3@8 g3@8 g3@11 ~, ~@8 d4@16 d4@7 ~, ~@16 c4@15 ~]/2",
  M: "[~@7 g3, [bb2,eb3], ~ g3@2 g3@2 g3 bb3@2, ~ eb4@3, ~ d4]/2", // Eb5
  N: "[~@15 g3, [c3,f3]@6 d4@3 g3 eb4@6, ~ a3@2 a3@5 c3@8, ~@2 c4@3 eb4@2 c4@6 g3 c4@2, ~@4 f4@7 g3 d4@4]/4", // F5
  O: "~@3 g3, g2, ~ g3@2 ~, ~ d4", P: "~@3 a3, c3, a3@3 ~, ~ f3@3, ~ f4",
  Q: "[~@5 g3 ~ eb3, c3, g3@3 g3 [bb3,d4]@4, ~ c4@5 [g3,c4]@2, ~ eb4@3]/2", // Bb C5
  R: "~@3 d4, [f2,g2]@15 ~, d4@3 ~, ~ d3@3, ~ g3", S: "~@2 [a2,f3] a3, [f2,a3]@7 ~, ~@2 c3@5 ~",
  T: "[~@3 f3 ~@3 f3 ~@3 bb3 ~@3 bb3 ~@3 g3 ~@3 f3, bb2@32 ~@40 eb4@9 ~@7 d4@8, ~ f3@2 ~ f3@3 ~ d3@4 ~ bb3@2 ~@2 g3@2 ~ d3@4, ~@8 f4@16 f4@16 f4@16 f4@25 ~@15, ~@20 bb3@12 ~@4 g3@12 f3@16 eb3@17 ~@3 f3@8 ~@4]/6",
  U: "~@3 bb3, [eb3,g3], ~ bb3@2 ~, ~ eb4", V: "~ f4, [f3,a3], ~ c4@3", W: "~@3 bb3, bb2, ~ f3@3, ~ f4",
  X: "[~@5 bb3!3 bb3!4, a3@2 f3, ~ c4@8 ~@3, ~ f4@2 f4@2 f4, ~ g3@2]/3", Y: "~@3 g3, eb3, ~ eb4",
  Z: "~@3 f3, d3, ~ f3@2 ~, ~ d4", AA: "~@8 f4@5 ~@3, [f3,a3]@13 ~@3, ~@4 c4@9 ~@3", AB: "[[d3,g3,bb3,d4]@7 ~]/2",
  AC: "~@3 d4, [f2,g2], d4@3 ~, ~ d3@3, ~ g3", // Fsus2
  AD: "[~ g3!2 ~@4 g3, c3, ~ eb4@2 [c4,eb4], ~@3 g3@2 g3@2 ~, ~ [d4,f4]]/2", // Cm Dm
  AE: "[~@7 g3, g2, ~ g3@2 g3@2 g3 bb3@2, ~ d4@3, ~ c4]/2", AF: "[~@7 f3, bb2, ~ f3@2 f3@2 f3@2 ~, ~ f4@2 f4, ~ c4]/2",
  AG: "[~@24 g3@7 ~, bb3@12 bb3@8 bb3@11 ~, ~ g3@5 ~@2, ~@8 f4@23 ~, ~@16 a3@15 ~]/2",
  AH: "[~@7 g3, d4@3 d4@3 d4@2, ~ g3@3 g3@3 ~, ~@2 a3@3 a3@3]/2",
  AI: "[~@24 a3@7 ~, d3@31 ~, d4@16 d4@15 ~, ~@4 gb3@8 gb3@8 gb3@11 ~, ~ a3@2 ~]/2",
  AJ: "[~@3 c4, c3, ~ g3@2 g3@2 g3@3, ~ eb4@3, ~ d4]/2", AK: "~@8 bb3@7 ~, g2@15 ~, ~@4 d3@11 ~",
  AL: "~@2 a3@2 [a3,f4]@2 [c4,a4] ~, f3@13 ~@3", // Dm F
  AM: "[~@44 d3@3 ~@2 [bb3,d4]@24 ~@7, g3@20 bb3@4 d3@8 bb3@17 ~@31, bb3@12 d3@4 a3@20 d3@8 ~@3 d3@26 ~@7, d4@5 d3@3 d4@32 a3@8 ~@32, d3@2 g2@26 g3@20 [g1,g2,g3,a3]@25 ~@7]/5", // Bb Gsus2
})).s("gm_acoustic_guitar_steel").gain(0.21).pan(0.3)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@2 A@2 B@2 C D E F@2 G@2 H@2 I@2 J K L@2 M@2 N@2 O P Q R S T U@2 V W X@4 Y@2 Z AA AB@2 AC@2 AD@2 AE AF AG@2 G@2 H@2
  I@2 J K L@2 M@2 N@2 O P Q R S T U@2 V W X@4 Y@2 Z AA AB@2 AC@2 AD@2 AE AF AG@2 AH@2 AI@2 AJ@2 AK@2 AL@2 AM@2 AN@2 AO
  AP X@4 AQ@2 Z AA AB@2 AC@2 AD@2 AE AF AG@2 ~@3
>`.pickRestart({
  A: "[~@7 c4, bb2@20 eb4@4 d4@7 ~, ~@4 f3@8 f3@19 ~, ~@8 bb3@23 ~, ~@8 f4@8 f4@15 ~]/2",
  B: "[bb3 ~@6 c4, ~ f3@5 d4@2, ~ bb3@2 bb3@5, ~ f4 f4@2, ~@5 eb4@3]/2", C: "~@3 c4, [eb3,bb3], ~ g3@3",
  D: "~@3 bb3, [f3,d4]", E: "~@3 d4, [eb3,bb3], ~ g3@3, ~ c4", F: "[~@4 a4@3 ~, f3@7 ~, c4@3 c4@4 ~, ~@2 bb3@5 ~]/2",
  G: "[~@7 bb3, g3 g3, ~ bb3@2 bb3@4 ~, ~ d4@2 d4]/2",
  H: "[~@7 eb4, g3, ~ bb3@2 bb3@3 bb3@2, ~@2 eb4@3 eb4@2 ~, ~ a3]/2",
  I: "[~@6 a3 bb3, g3@12 g3@17 ~@3, ~ bb3@4 bb3@2 ~, ~@8 d4@8 d4@13 ~@3]/2",
  J: "~@3 f3, bb3@15 ~, ~ f3@2 ~, ~@8 d4@7 ~", K: "[eb3,c4]@2 ~ [d3,bb3], ~ [eb3,c4]",
  L: "[eb3 ~@5 c4 g3, c4@5 g3@2 ~, ~@2 eb3@13 ~, ~@4 eb4@11 ~, ~@6 g3@2 d4@7 ~]/2",
  M: "[~@7 bb3, d4@31 ~, ~@4 g3@8 g3@19 ~, ~@8 c4@23 ~, ~@16 bb3@8 a3@7 ~]/2",
  N: "[~@4 a3!2 bb3!2, g3@12 g3@11 ~@9, ~@4 bb3@19 ~@9, ~@8 eb4@15 ~@9, ~@16 f4@7 ~ g4@8]/2", O: "~ a3!3, f4@15 ~",
  P: "~@3 c4, f4, ~ eb4@3, ~ d4", Q: "~@3 g3, eb4, ~ g3@2 ~, ~ d4", R: "c4@3 bb3", S: "~@3 g3, d4, c4!2, ~ g3@2 ~",
  T: "a3@2 ~ f4, ~ [f3,a3]", // F
  U: "[~@7 g3, [c3,a3,c4]@31 ~, ~@8 eb4@16 [eb4,g4]@7 ~, ~@3 g3@2 g3@2 ~, ~@16 [d4,f4]@15 ~]/2", // F Eb Dm
  V: "~@3 bb3, d4@15 ~, ~ bb3@2 ~, ~@8 g4@7 ~", W: "[c4,a4]@7 ~ [eb4,c5]@4 ~@4",
  X: "[~@2 f4!2 ~@3 c4 ~@2 f4!2 ~@2 d4 c4, bb3@31 ~ bb3@30 ~@2, ~@2 f4@3 ~ f4@2, ~@20 eb4@11 ~@21 eb4@10 ~@2, ~@24 d4@7 ~@33]/4",
  Y: "[~@3 f4 ~ bb3 bb3@2, g3, ~ bb3@4 ~@3, ~ eb4@3, ~ f4]/2", Z: "g3 ~ [bb3,g4]@2, eb4, ~ g3@3",
  AA: "a3@2 ~ c3, f4, ~ [f3,a3]", AB: "[~@2 f4!2 ~@3 a3, d4, ~ f3@7, ~ f4]/2",
  AC: "[~@2 f4!2 f4!2 ~ c4, bb3@5 bb4@3, ~@4 g3@17 ~@3 f4@8]/2",
  AD: "[eb4@12 ~@12 f3@7 ~, bb3@20 bb3@11 ~, ~@12 eb4@19 ~, ~@16 d4@15 ~]/2", AE: "~@3 bb3, g3, ~ bb3@2 ~, ~ eb4",
  AF: "~@2 f4 ~, a3@3 ~", AG: "[[d3,g3]@5 ~@3]/2",
  AH: "[~ g3!2 ~@4 g3, c3, ~ eb4@2 [c4,eb4], ~@3 g3@2 g3@2 ~, ~ [d4,f4]]/2", // Cm Dm
  AI: "[~@7 g3, g2, ~ g3@2 g3@2 g3 bb3@2, ~ d4@3, ~ c4]/2", AJ: "[~@7 f3, bb2, ~ f3@2 f3@2 f3@2 ~, ~ f4@2 f4, ~ c4]/2",
  AK: "[~@24 g3@7 ~, bb3@12 bb3@8 bb3@11 ~, ~ g3@5 ~@2, ~@8 f4@23 ~, ~@16 a3@15 ~]/2",
  AL: "[~@7 g3, d4@3 d4@3 d4@2, ~ g3@3 g3@3 ~, ~@2 a3@3 a3@3]/2",
  AM: "[~@24 a3@7 ~, d3@31 ~, d4@16 d4@15 ~, ~@4 gb3@8 gb3@8 gb3@11 ~, ~ a3@2 ~]/2",
  AN: "[~@3 c4, c3, ~ g3@2 g3@2 g3@3, ~ eb4@3, ~ d4]/2", AO: "~@8 bb3@7 ~, g2@15 ~, ~@4 d3@11 ~",
  AP: "~@2 a3@2 [a3,f4]@2 [c4,a4] ~, f3@13 ~@3", AQ: "[~@3 f4 ~ bb3 bb3@2, g3@31 ~, ~ bb3@4 ~@3, ~ eb4@3, ~ f4]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.2).pan(0.8)

// chords · epiano2
const epiano2 = note("<~@75 A@2 ~@55>".pickRestart({
  A: "[[g3,bb3,d4]@7 ~]/2", // Gm
})).s("gm_epiano2").gain(0.11).pan(0.6)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@2 A@2 B@7 C@2 D@2 C@2 E@2 F@2 C@2 G@2 H@2 I@2 J K I@2 J L M@2 N@2 O P O Q R S T U O P V L W@2 C@2 D@2 C@2 E@2 F@2
  C@2 G@2 X@2 I@2 J K Y@2 J L M@2 Z@2 O P O Q R S T U O P V L W@2 ~@37
>`.pickRestart({
  A: "[bb3,f4]/2", B: "[f5@31 [bb3,eb4,f4]@16 d4@16 [eb4,f4]@16 [f3,c4,f4]@25 ~@8, ~@47 bb4@32 ~@33]/7",
  C: "[g3,bb3,d4]/2", D: "[g3@2 a3 g3, [bb3,eb4]]/2", E: "[f3,bb3,d4]/2", F: "[g3,bb3,c4,eb4]/2", G: "[g3,bb3,eb4]/2",
  H: "[a3,c4,f4]/2", I: "[[g3,c4,eb4]@31 ~]/2", J: "[g3,bb3,d4]", K: "[f3,a3,c4]@15 ~", L: "[c3,f3,a3,c4,f4]",
  M: "[[f3,bb3]@16 a3@15 ~, [d4,f4]@31 ~]/2", N: "[g3@15 ~ f3@16, [bb3,d4]]/2", O: "[eb3,g3,bb3,eb4]",
  P: "[d3,f3,bb3,d4,f4]", Q: "[f3,a3,c4,f4]", R: "[bb2,f3,bb3,d4,f4]", S: "[a3,c4,f4]@15 ~", T: "[g3,bb3,d4]@15 ~",
  U: "[f3,bb3,d4,f4]", V: "[bb2,eb3,g3,bb3,eb4]@15 ~", W: "[d3,g3,bb3]/2", X: "[[a3,c4,f4]@31 ~]/2", Y: "[g3,c4,eb4]/2",
  Z: "[g3@15 ~ f3@16, [bb3,d4]@31 ~]/2", // Bb
})).s("gm_synth_strings_1").gain(0.15)

// other · lead 1 square
const lead_1_square = note("<~@3 A B@2 C D E F@2 ~@121>".pickRestart({
  A: "f5 eb5 d5 c5", B: "[bb4@3 d5]/2", C: "bb4@3 c5", D: "d5", E: "bb4 c5 d5 eb5", F: "[c5@5 ~@3]/2",
})).s("gm_lead_1_square").gain(0.07).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~@7 A@2 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@2 ~ A@2 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B
  A@3 B A@3 B A@2 ~ A@2 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@2 ~@8
>`.pickRestart({
  A: "x", B: "x ~@2 x",
})).gain(0.3)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
  A ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@12
>`.pickRestart({
  A: "~@3 x",
})).gain(0.15)

// drums · rim
const rim = s("rim").struct(`<
  ~@7 A@24 ~ B C ~@2 B C ~@2 B C ~@2 D C ~@3 A@24 ~ B C ~@2 B C ~@2 B C ~@2 D C ~@4 B C ~@2 B C ~@2 B C ~@2 D C ~@2 B C
  ~@2 B C ~@2 B C ~@2 D C ~@10
>`.pickRestart({
  A: "~ x", B: "~@14 x!2", C: "x", D: "~@15 x",
})).gain(0.25)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@46 A ~@41 A ~@17 B ~@15 A ~@9>".pickRestart({
  A: "~@14 x!2", B: "~@7 x",
})).gain(0.15)

// drums · snare
const snare = s("sd").struct("<~@30 A B@7 C B@8 ~@25 A B@7 C B@8 ~@2 B@7 C B@7 D B@7 C B@8 ~@9>".pickRestart({
  A: "~@2 x ~@2 x ~@2", B: "~ x", C: "~@4 x!2 ~@2", D: "~@2 x!4 ~@2",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@22 A ~@23 B ~@17 A ~@23 B ~@17 B ~@15 B ~@9>".pickRestart({
  A: "~ x", B: "~@3 x",
})).gain(0.4)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@38 A ~@41 A ~@17 A ~@7 A ~@7 A ~@17>".pickRestart({
  A: "~@3 x",
})).gain(0.25)

// drums · hihat
const hihat = s("hh").struct(`<
  A@2 ~@5 B C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@2 ~@2 B C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3
  C B@3 C B@3 C B@2 D A B C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@2 ~@9
>`.pickRestart({
  A: "x!2", B: "x!4", C: "x ~ x!2", D: "~ x",
})).gain(0.2)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@8 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
  A ~@3 B ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@11
>`.pickRestart({
  A: "~ x ~@2", B: "~@3 x ~@4",
})).gain(0.15)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@7 B ~@7 C ~@25 A ~@7 B ~@7 C ~@9 B ~@7 D ~@7 B ~@7 C ~@9>".pickRestart({
  A: "~@2 x!2", B: "~ x", C: "~@5 x ~@2", D: "~@4 x!2 ~@2",
})).gain(0.35)

// drums · crash
const crash = s("cr").struct(`<
// … 20 more lines

More by Backstreet Boys