Strudelify
All I Have to Give cover art

1997 · Backstreet's Back

All I Have to Give

Backstreet Boys

KeyD♭ majorTempo95 bpm
0:00/0:00
// All I Have to Give — Backstreet Boys
// 95 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(95/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(`<
  ~@7 A B C D@2 B E F G H I J K B E F G L M N O B P Q R B S D@2 B E F G H I J K B E F G L M N O T U V W X Y Z AA AB B E
  F G L M N O AC ~@2 AD AE AF AG AH AE AI AJ AK AL AM AN AO AP AQ AJ AK AL AM AN AO AP AQ AR@4
>`.pickRestart({
  A: "~@7 f1", B: "gb1@5 ~ ab1@7 ~ ab1@2", C: "f1@5 ~ gb1@6 gb1@2 bb1@2", D: "[b1@5 ~ b1@6 db2@2 eb2@8 f1@7 ~ f1@2]/2",
  E: "bb1@5 ~ bb1@3 ~ bb1@4 ab1@2", F: "gb1@5 ~ ab1@3 ~ ab1@5 ~", G: "f1@5 ~ gb1@7 ~ gb1 ~", H: "gb1@5 ~ ab1@8 bb1@2",
  I: "b1@5 ~ bb1@8 gb1@2", J: "f1@8 a1@5 ~ a1@2", K: "bb1@7 ab1", L: "gb1@5 ~ ab1@6 ab1@2 bb1@2",
  M: "c2@5 ~ db2@6 db2@2 bb1@2", N: "b1@5 ~ b1@6 gb1@4", O: "ab1@12 f1@3 ~", P: "bb1@5 ~ bb1@6 bb1@2 ab1@2",
  Q: "gb1@5 ~ ab1@5 ~ ab1@2 gb1@2", R: "f1@3 gb1@2 bb1@2 f1", S: "bb1@5 ~ bb1@6 f1@2 bb1@2",
  T: "bb2 eb2 db2 c2 bb1@2 c2@10", U: "db2@3 gb1@3 bb1@2", V: "c2@6 db2@5 ~ db2@2 bb1@2", W: "gb1@9 ~ gb1@4 ab1@2",
  X: "bb1@6 c2@7 ~ c2@2", Y: "db2@2 f1 gb1@3 ab1 bb1", Z: "c2@6 db2@5 ~ db2@4", AA: "b1@6 b1@5 ~ b1@2 bb1@2",
  AB: "ab1@4 bb1@3 ab1", AC: "gb1 ~@3", AD: "f1@2 ~ gb1@3 ab1 bb1", AE: "gb1@5 ~ ab1@9 ~", AF: "f1@5 ~ gb1 ~ gb1@8",
  AG: "b1@6 b1@2 bb1@5 ~ bb1@2", AH: "ab1@6 ab1 ~ ab1@3 ~ ab1@3 ~", AI: "bb1@3 ~@5 a1@7 ~", AJ: "g1@5 ~ a1@7 ~ a1@2",
  AK: "b1@5 ~ b1@3 ~ b1@4 a1@2", AL: "g1@5 ~ a1@3 ~ a1@5 ~", AM: "gb1@5 ~ g1@7 ~ g1 ~", AN: "g1@5 ~ a1@6 a1@2 b1@2",
  AO: "db2@5 ~ d2@6 d2@2 b1@2", AP: "c2@5 ~ c2@6 g1@4", AQ: "a1@12 gb1@3 ~", AR: "[[d1,d2]@25 ~@7]/4",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · pad warm
const pad_warm = note(`<
  ~@20 A B C D E F G H A I A J E K L@2 A M N@2 A O P Q A B C D E F G H R S T U V W T X Y A B C D E F G H A B C D E F G H
  Z AA AB AC AD AE AF AG AH AI AB AC AD AE AF AG AH AI AJ@4
>`.pickRestart({
  A: "[ab3,bb3,db4]@5 ~ [ab3,c4,eb4]@8 ~@2", B: "[bb3,db4,f4]@13 ~@3", C: "[ab3,bb3,db4]@5 ~ [bb3,c4,eb4]@8 ~@2",
  D: "[ab3,c4]@5 ~ [bb3,db4]@9 ~", E: "[ab3,bb3,db4]@5 ~ [ab3,c4,eb4]@9 ~", F: "[ab3,c4,eb4,ab4]@5 ~ [ab3,db4,f4]@9 ~",
  G: "[b3,eb4,gb4]@15 ~", H: "[bb3,eb4,gb4]@15 ~", I: "[f3,bb3,db4]@15 ~", J: "[ab3,c4,f4]@5 ~ [ab3,bb3,db4]@9 ~",
  K: "[bb3,db4,f4]@15 ~", L: "[[b3,eb4,gb4]@13 ~ [ab3,db4,f4]@8 ~@4 [ab3,c4,eb4]@5 ~]/2", M: "[f3,bb3,db4]@7 ~",
  N: "[[ab3,bb3,db4]@5 ~ [ab3,c4,eb4]@15 ~ [ab3,bb3,db4]@9 ~]/2", O: "[b3,eb4,gb4]@5 ~ [bb3,db4,f4]@8 ~@2",
  P: "[a3,c4,eb4]@5 ~ [a3,eb4]@9 ~", Q: "[bb3,db4]@15 ~",
  R: "[f5,f6]@3 ~ [f5,f6]@2 ~@2 [eb5,eb6]@3 ~ [eb5,eb6]@3 ~, [bb3,db4,f4]@6 [c4,eb4,ab4]@9 ~", // F Eb Bbm Ab
  S: "[ab3,db4,f4]@4 [db5,db6]@2 ~@2 [db5,db6]@3 ~ [db5,db6]@3 ~, [db5,db6]@3 ~@3 [ab3,db4,gb4]@9 ~", // Db Dbsus4
  T: "[c4,eb4,ab4]@4 [eb5,eb6]@2 ~@2 [db5,db6]@3 ~ [db5,db6]@3 ~, [eb5,eb6]@3 ~@3 [ab3,db4,f4]@8 ~@2", // Ab Eb Db Eb Db
  U: "[db5,db6]@3 ~ [db5,db6]@3 ~ [db5,db6]@3 ~ [db5,db6]@3 ~, [ab3,bb3,db4]@15 ~", // Db Bbm7
  V: "[bb3,db4,f4]@4 [db5,db6]@2 ~@2 [eb5,eb6]@3 ~ [eb5,eb6]@3 ~, [db5,db6]@3 ~@3 [bb3,c4,eb4]@8 ~@2", // Bbm Db Eb Db Cm7
  W: "[ab3,db4,f4]@4 [db5,db6]@2 ~@2 [db5,db6]@3 ~ [db5,db6]@3 ~, [db5,db6] ~@2 [ab3,db4,gb4]@4 ~", // Db Dbsus4
  X: "[eb5,eb6]@3 ~ [eb5,eb6]@3 ~ [eb5,eb6]@3 ~ [eb5,eb6]@2 ~@2, [gb3,b3,eb4]@15 ~", // Eb B
  Y: "[gb3,bb3,eb4]@8 [f3,bb3,db4]@7 ~, [eb5,eb6]@11 ~@5", Z: "[ab3,bb3,db4]@2 ~ [ab3,c4,eb4]@4 ~",
  AA: "[ab3,bb3,db4]@2 ~@2 [g3,b3,e4]@3 ~", AB: "[a3,b3,d4]@5 ~ [a3,db4,e4]@8 ~@2", AC: "[b3,d4,gb4]@13 ~@3",
  AD: "[a3,b3,d4]@5 ~ [b3,db4,e4]@8 ~@2", AE: "[a3,db4]@5 ~ [b3,d4]@9 ~", AF: "[a3,b3,d4]@5 ~ [a3,db4,e4]@9 ~",
  AG: "[a3,db4,e4,a4]@5 ~ [a3,d4,gb4]@9 ~", AH: "[c4,e4,g4]@15 ~", AI: "[b3,e4,g4]@15 ~",
  AJ: "[~@16 [d1,d2]@33 ~@15, [a3,d4,gb4]@49 ~@15]/4", // D
})).s("gm_pad_warm").gain(0.14)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@12 A B C D E F G H A B C D I J K L M N O P Q R ~@2 A B C D E F G H A B C D I J K L S T U V W X Y Z AA A B C D I J K
  L ~@8 AB AC AD AE AF AG AH AI AJ AK AD AE AF AG AH AI AJ AK AL@2 ~@2
>`.pickRestart({
  A: "~ db3 [ab3,bb3,db4] ~@2 [eb3,ab3,bb3,eb4]@3, gb2@5 ~ ab2@9 ~", // Bbm7 Ebsus4
  B: "~@4 [f3,bb3,f4]@7 ~ [bb3,db4]@3 ~, bb2, ~ db3@7", // Bb5 Bbm
  C: "~@4 [gb3,bb3,db4]@3 ~@3 [ab3,bb3,eb4]@6, gb2@3 ~ ab2@3 ~, ~@2 db3@5 ~@3 eb3@4 ~@2", // Gb Absus2
  D: "~@2 c3@2 [ab3,c4,ab4]@2 [gb2,ab3,bb3,db4]@9 ~, f2 ~@3", // Ab Gb
  E: "~@2 db3@2 [ab3,bb3,db4]@2 ~@4 [eb3,ab3,c4,eb4]@5 ~, gb2@5 ~ ab2@9 ~", // Bbm7 Ab
  F: "~ gb3 [b3,eb4,gb4] ~@2 [bb3,db4]@2 ~, b2@5 ~ [bb2,f3]@8 ~@2", // B Bbm Bb5
  G: "gb4@4 f4@2 eb4@3 ~ [db4,f4]@6, f2@7 ~, [a3,c4]@9 ~@7, ~@3 eb3@5", // Db Am
  H: "~@3 [bb3,db4]@4 ~, bb2@7 ~, ~ db3@6 ~, ~@2 f3@5 ~", // Bbm
  I: "[db3,gb3] ~ [db3,gb3]@2 [bb3,db4]@2 ~@4 [ab3,c4,eb4]@6, ~@6 [ab2,eb3]@9 ~", // Gb5 Bbm Ab Ab5
  J: "c3@2 [ab3,c4,eb4,ab4] ~@2 [ab3,db4,ab4]@3, ~@6 [db3,f3]@9 ~", // Ab Db5 Db
  K: "~@4 eb4@2 db4@3 ~ [gb3,eb4]@6, [b2,eb3]@7 ~, ~@2 gb3@7 ~@7", // Ebm B
  L: "~@3 [bb3,eb4]@4 ~, ab2@7 ~, ~ eb3@6 ~, ~@2 gb3@5 ~", // Eb5
  M: "~ db3 [ab3,bb3,db4] ~@2 [eb3,ab3,c4,eb4]@3, gb2@5 ~ ab2@9 ~", N: "~ bb3@3, bb2@15 ~, ~@2 f3@13 ~",
  O: "~@4 [gb3,bb3,gb4]@3 ~@3 [bb3,c4,eb4]@6, gb2@7 ~ ab2@5 ~@3, ~@2 db3@5 ~@3 eb3@3 ~@3", // Gb Cm7
  P: "~ c3 [f3,ab3,c4,ab4] ~@2 [db3,ab3,bb3,db4]@3, f2@4 ~@2 gb2@9 ~", // Fm Bbm7
  Q: "~@4 [gb3,ab3,bb3,db4]@3 ~@5 [bb3,c4,eb4]@2 ~@2, gb2@7 ~ ab2@6 ~@2, ~@2 db3@5 ~@3 eb3@4 ~@2", // Gb Cm7
  R: "bb2@2 ~@3 [f3,ab3,db4]@2 bb2, ~@4 [f3,bb3,db4]@5 ~@7, ~@6 bb2@7 ~@3", // Db Bbm
  S: "[bb2,f3]@2 [bb3,db4,ab4] ~@2 [ab3,c4,eb4,ab4]@3, ~@6 [c3,eb3]@9 ~", // Bb5 Bbm7 Ab Cm
  T: "~@2 [ab3,db4,f4,ab4]@3 ~@5 [ab3,db4,gb4]@6, [db3,f3]@4 ~@2 [db3,gb3]@9 ~", // Db Dbsus4 Db Gb5
  U: "~@2 [c4,eb4,ab4] ~@2 [ab3,db4,ab4]@3, [c3,eb3]@5 ~ [db3,f3]@9 ~, ~ ab3@2 ~@5", // Ab Db5 Cm Db
  V: "~@3 [bb3,db4]@5, db3@15 ~, ~@2 gb3@13 ~, ~ ab3@3", // Bbm
  W: "~ f3 [bb3,db4,f4,ab4] ~@2 [eb4,ab4]@3, db3@5 ~ [c3,eb3,ab3]@9 ~", // Bbm7 Ab5 Ab
  X: "~@2 [db4,f4] ~@3 [bb3,db4]@2, [db3,f3]@4 ~@2 db3@9 ~, ~@2 ab3@4 ~@2 gb3@7 ~, ~@5 ab3@3", // Db Bbm Db
  Y: "~@2 eb3@2 [ab3,c4,eb4,ab4] ~ [ab3,db4,ab4]@9 ~, c3@5 ~ [db3,f3]@7 ~@3", // Ab Db5 Db
  Z: "~@6 db4@3 ~ [b3,eb4]@6, b2@15 ~, ~@2 gb3@13 ~, ~@4 b3@5 ~@7", // B
  AA: "~@4 ab3@2 [bb3,eb4]@2 [f3,bb3,db4]@5 ~@3, eb3 ~, ~ gb3@3 ~@4", // Eb5 Bbm
  AB: "[gb2,db3]@4 [ab3,bb3,db4]@2 ~@4 [ab3,eb4]@5 ~, ~@6 [ab2,c3]@9 ~", AC: "[bb2,f3,bb3,db4] ~@7",
  AD: "~ d3 [a3,b3,d4] ~@2 [e3,a3,b3,e4]@3, g2@5 ~ a2@9 ~", AE: "~@4 [gb3,b3,gb4]@7 ~ [b3,d4]@3 ~, b2, ~ d3@7",
  AF: "~@4 [g3,b3,d4]@3 ~@3 [a3,b3,e4]@6, g2@3 ~ a2@3 ~, ~@2 d3@5 ~@3 e3@4 ~@2", // G Asus2
  AG: "~@2 db3@2 [a3,db4,a4]@2 [g2,a3,b3,d4]@9 ~, gb2 ~@3", // A G
  AH: "[d3,g3] ~ [d3,g3]@2 [b3,d4]@2 ~@4 [a3,db4,e4]@6, ~@6 [a2,e3]@9 ~", // G5 Bm A A5
  AI: "db3@2 [a3,db4,e4,a4] ~@2 [a3,d4,a4]@3, ~@6 [d3,gb3]@9 ~", // A D5 D
  AJ: "~@4 e4@2 d4@3 ~ [g3,e4]@6, [c3,e3]@7 ~, ~@2 g3@7 ~@7", AK: "~@3 [b3,e4]@4 ~, a2@7 ~, ~ e3@6 ~, ~@2 g3@5 ~",
  AL: "[~ [gb3,a3,d4,a4]@27 ~@4, d3@7 ~]/2", // D
})).s("gm_acoustic_guitar_steel").gain(0.21).pan(0.6)

// chords · epiano2
const epiano2 = note(`<
  A@3 B C@3 B D E F@2 C@3 B G H I J C@3 B K L M N C@3 B D O F@2 C@3 B G H I J C@3 B K L M N P Q R S T U V W X C@3 B K L
  M N ~@8 Y Z AA@3 AB AC AD AE AF AA@3 AB AC AD AE AF AG@2 ~@2
>`.pickRestart({
  A: "[~@4 [ab3,bb3,db4]@2 ~@4 [ab3,c4] ~ db4 c4 ~@2 f3@4 ~@6 gb3@2 ~@2 [bb3,eb4]@2 ~@10 [c4,eb4]@6, [gb2,db3]@6 [ab2,eb3]@6 ab3@2 bb3@5 ~ db4@10 ~@2 gb2@6 [ab2,eb3]@6 ~@4, ~@8 bb2@7 db3@4 ~@5, ~@28 f3@5 ~ [bb3,db4]@6 ~@8]/3", // Bbm7 Ab Eb5 Cm Gb5 Ab5 Bbm
  B: "~@2 c3@2 db4 ~ bb3@6 [gb3,bb3,db4]@3 ~, f2@4 f3@2 [gb2,db3]@9 ~, ~@5 eb4@7 ~@4", // Gb Gb5
  C: "[~@4 [ab3,bb3,db4]@2 ~@4 [ab3,c4] ~ db4 c4 ~@2 f3@4 ~@6 gb3@2 ~@2 [bb3,eb4]@2 ~@2 [bb3,db4]@6 ~@2 [c4,eb4]@6, [gb2,db3]@6 [ab2,eb3]@6 ab3@2 bb3@5 ~ db4@10 ~@2 gb2@6 ~@2 [ab2,eb3]@6 ~@2, ~@8 bb2@7 db3@4 ~@5, ~@28 f3@5 ~@15]/3", // Bbm7 Ab Eb5 Bbm Cm Gb5 Ab5
  D: "~@2 [ab3,bb3,db4,ab4] ~@2 [bb3,c4,eb4]@3, gb2@3 ab2@3 ~@2, ~@2 db3@5 ~@3 eb3@4 ~@2", // Bbm7 Cm7
  E: "~@4 [f3,eb4] ~ [ab3,bb3,db4]@5 ~ [db3,ab3,bb3,db4]@4, f2@3 c4@2 ab4@6 ~@5, ~@2 [c3,bb3]@3 ~ gb2@10", // F7 Bbm7 C7
  F: "[~@6 db4@3 ~ [gb3,b3,eb4]@4 [eb3,f3,ab3,db4,f4]@8 ~@6 db4@2 ab4 ~, b2@14 ~@8 f2@9 ~, ~@2 gb3@7 ~@15 db3@7 ~, ~@4 b3@5 ~@17 [f3,ab3]@5 ~]/2", // B Db Fm
  G: "~@4 [ab3,bb3,db4]@2 ~@4 [ab3,c4] ~ db4 c4 bb3 ~, [gb2,db3]@3 [ab2,eb3]@3 ab3 ~", // Bbm7 Ab Gb5 Ab5
  H: "~@2 gb4@2 eb4@2 [bb3,db4,f4]@3 ~ [f3,bb3,db4]@6, [b2,gb3]@3 bb2@5", // Bbm B5
  I: "~@10 f4@5 ~, f2, ~@2 eb3@13 ~, ~@4 a3@11 ~, ~@3 eb4@5", J: "[bb2,f3,bb3,db4,f4]@13 ~@3",
  K: "~@2 [bb3,db4,gb4] ~@2 [c4,eb4,ab4]@3, [gb2,db3]@4 ~@2 [ab2,eb3]@9 ~, ~ ab3@2 ~@5", // Gb Ab Gb5 Ab5
  L: "~@4 [eb4,ab4]@2 [ab3,db4,eb4]@3 ~ [ab3,db4,f4]@5 ~, c3@4 c4 ~@11, ~@2 ab3@4 db3@9 ~", // Ab5 Absus4 Db
  M: "~@4 db4@2 eb4@9 ~, [b2,gb3]@15 ~, ~@2 b3@13 ~", N: "~@6 gb4@7 ~@3, ab2@13 ~@3, ~@2 gb3@11 ~@3, ~@4 bb3@9 ~@3",
  O: "~@6 bb3@3 ~ ab3@4 bb3@2, bb2@15 ~, ~ db4@7, ~ f4@3", P: "~@5 ab3@3, bb2@2 eb4@3 ~@3, ~ ab4@4 ~@3, ~@3 c3@5",
  Q: "~@4 ab4@2 [gb3,bb3,db4]@9 ~, db3@5 ~@11, ~@2 ab3@13 ~", R: "~@4 ab4@2 f4@9 ~, c3@5 ~ db3@7 ~@3, ~@2 ab3@13 ~",
  S: "~@4 ab3@2 [bb3,db4]@9 ~, db3@15 ~, ~@2 gb3@13 ~", // Bbm
  T: "~ f3 [bb3,db4,ab4] ~@2 [ab3,eb4,ab4]@3, db3@5 ~ c3@9 ~, ~@8 eb3@7 ~", // Bbm7 Ab5
  U: "~ f3 [ab3,db4,f4] ~@2 [ab3,db4,gb4]@3, db3@2 ~ db3@4 ~, ~@4 gb3@3 ~", // Db Dbsus4
  V: "~ eb3 [ab3,eb4,ab4] ~@2 [ab3,db4,f4,ab4]@3, c3@5 ~ db3@8 ~@2, ~@4 f3@3 ~", // Ab5 Db
  W: "~@6 db4@3 ~ [b3,eb4]@6, b2@15 ~, ~ gb3@7, ~@4 b3@5 ~@7", // B
  X: "~@6 [gb4,bb4] ~ [db3,f3,bb3,db4,f4]@5 ~@3, eb3@7 ~@9, ~@2 gb3@5 ~@9, ~ [bb3,eb4] ~@2", // Gb Bbm Eb5
  Y: "[gb2,db3]@4 [ab3,bb3,db4]@2 ~@4 c4 ~ db4 c4 bb3 ab3", Z: "[bb2,bb3]@3 ~@13",
  AA: "[~@4 [a3,b3,d4]@2 ~@4 [a3,db4] ~ d4 db4 ~@2 gb3@4 ~@6 g3@2 ~@2 [b3,e4]@2 ~@2 [b3,d4]@6 ~@2 [db4,e4]@6, [g2,d3]@6 [a2,e3]@6 a3@2 b3@5 ~ d4@10 ~@2 g2@6 ~@2 [a2,e3]@6 ~@2, ~@8 b2@7 d3@4 ~@5, ~@28 gb3@5 ~@15]/3", // Bm7 A E5 Bm Dbm G5 A5
  AB: "~@2 db3@2 d4 ~ b3@6 [g3,b3,d4]@3 ~, gb2@4 gb3@2 [g2,d3]@9 ~, ~@5 e4@7 ~@4", // G G5
  AC: "~@2 [b3,d4,g4] ~@2 [db4,e4,a4]@3, [g2,d3]@4 ~@2 [a2,e3]@9 ~, ~ a3@2 ~@5", // G A G5 A5
  AD: "~@4 [e4,a4]@2 [a3,d4,e4]@3 ~ [a3,d4,gb4]@5 ~, db3@4 db4 ~@11, ~@2 a3@4 d3@9 ~", // A5 Asus4 D
  AE: "~@4 d4@2 e4@9 ~, [c3,g3]@15 ~, ~@2 c4@13 ~", AF: "~@6 g4@7 ~@3, a2@13 ~@3, ~@2 g3@11 ~@3, ~@4 b3@9 ~@3",
  AG: "[[d3,a3,d4,gb4,a4]@3 ~]/2", // D
})).s("gm_epiano2").gain(0.19)

// other · whistle
const whistle = note("<~@17 A B C ~@21 A B C ~@30 D E F ~@22>".pickRestart({
  A: "eb6@3 gb6@3 f6@4 db6@6", B: "c6@7 ~@9", C: "bb5@7 ~@9", D: "~@6 eb6 f6", E: "gb6@5 f6 eb6 db6", F: "ab5@7 ~",
})).s("gm_whistle").gain(0.17).pan(0.6)

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

// drums · rim
const rim = s("rim").struct("<~@8 [~ x ~ x]!52 ~ [~ x ~ x]!17 ~ [~ x ~ x]!16 ~@4>").gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~@60 [~@3 x] ~@38>").gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@60 [~@14 x!2] ~@38>").gain(0.35)

// drums · high tom
const high_tom = s("ht").struct("<~@60 [~@3 x ~ x ~@2] ~@38>").gain(0.35)

// drums · crash
const crash = s("cr").struct(`<
  ~@12 A ~@7 A ~@3 A ~@3 A ~@7 A ~@7 A ~@3 A ~@3 A ~@7 A@2 ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
>`.pickRestart({
  A: "x",
})).gain(0.25)

// drums · tambourine
const tambourine = s("tb").struct("<~@77 [x!16] x ~@20>").gain(0.2)

// drums · claves
const claves = s("clave:2").struct(`<
  ~@13 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@2 A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@4
>`.pickRestart({
  A: "~@8 x ~@2 x ~@2 x ~",
})).gain(1.7)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@3 A B C B D E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F ~ E@3 F E@3 F E@3 F E@3 F
  ~@2 E@3 F E@3 F E@3 F E@3 F ~@4
>`.pickRestart({
  A: "~@14 x!2", B: "x!4", C: "x!3 ~ x ~ x ~", D: "x ~@3 x ~@3 x ~@3 x ~ x!2", E: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2",
  F: "x ~ x!3 ~ x ~@3 x ~@3 x!2",
})).gain(0.2)

stack(
  bass, pad_warm, acoustic_guitar_steel, epiano2, whistle, kick, rim, low_tom, mid_tom, high_tom, crash, tambourine,
  claves, shaker
)

More by Backstreet Boys