Strudelify

10,000 Promises

Backstreet Boys

KeyF minorTempo138 bpm
0:00/0:00
// 10,000 Promises — Backstreet Boys
// 138 bpm, 3/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 176 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(138/3)

// 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.

// chords · piano
const piano = note("<A@5 ~@51 B@3 ~@117>".pickRestart({
  A: "[~@32 ab4@5 ~@11 ab4@5 ~@6 bb4@3 ~@13 db5@4 ~, c5@27 db5@26 ab4@25 ~@2, ~@5 db5@9 ab4@2 e5@16 e5@16 e5@31 ~, ~@11 eb5@26 ab4@10 ~ bb4@11 ~@3 bb4 db5 gb5@14 ~@2, ~@15 db5@6 ab4@11 b4@11 b4@26 bb4@9 ~@2]/5",
  B: "[~ d4@2, f4@2 ~, ~@5 bb3@32 ~@11, ~@11 c4@32 ~@5]/3",
})).s("gm_piano").gain(0.32)

// bass · fretless bass
const bass = note(`<
  ~@37 A@2 B C D@3 E F@2 B G H@2 I E J@3 ~ K@2 L@2 M@2 N O K@2 L@2 M@2 N O K@2 L@2 M@2 N O K@2 L@2 M@2 B P Q@2 I R S@3 B
  L@2 I T U@2 O B ~@9 V W@2 O X Y@3 I Z@2 O AA AB@2 AC I W@2 O X Y@3 I Z@2 O AA AB@2 AC I W@2 O X Y@3 I Z@2 O AA AB@2 AC
  I ~@13
>`.pickRestart({
  A: "[ab1@15 ~]/2", B: "ab1", C: "bb1@10 ~ c2@5", D: "[db2@2 bb1]/3", E: "gb1", F: "ab1/2", G: "bb1@11 c2@5",
  H: "db2/2", I: "bb1", J: "[ab1@11 ~@5]/3", K: "[bb1@26 ~ f1@5]/2", L: "bb1/2", M: "[eb2@26 ~ bb1@4 ~]/2", N: "eb2",
  O: "c2", P: "~@5 f1@5 ~ g1@5", Q: "[bb1@15 ~]/2", R: "c2@10 ~ d2@5", S: "[eb2@2 c2]/3", T: "c2@11 d2@5", U: "eb2/2",
  V: "bb1@5 c2@5 d2@5 ~", W: "[c2@15 ~]/2", X: "d2@10 ~ e2@5", Y: "[f2@2 d2]/3", Z: "c2/2", AA: "d2@11 e2@5",
  AB: "f2/2", AC: "d2",
})).s("gm_fretless_bass").gain(0.31)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@25 A@4 B@4 C@2 ~@2 D@4 E@2 F@2 D@4 G@2 F@2 H@2 ~@2 I@8 J@4 K@8 L@4 M@4 N@4 J@4 O@2 P@2 J@4 Q@2 P@2 ~@2 R@4 S@2 ~@2
  T@4 U@2 V@2 T@4 W@2 V@2 T@4 U@2 V@2 T@4 W@2 V@2 T@4 U@2 V@2 T@4 W@2 V@2 ~@2 X@4 Y@2 ~@5
>`.pickRestart({
  A: "[e4,ab4,db5]/4", B: "[eb4,ab4,c5]/4", C: "[e4,ab4,db5]/2", D: "[ab3,c4,eb4]/4", E: "[ab3,db4,e4]/2",
  F: "[bb3,db4,gb4]/2", G: "[[ab3,db4], e4@27 ~@5]/2", H: "[ab3,c4,eb4]/2", I: "[[d4,f4] [eb4,gb4], bb3]/8",
  J: "[bb3,d4,f4]/4", K: "[[eb4,gb4] [d4,f4], bb3]/8", L: "[bb3,eb4,gb4,bb4,eb5]/4", M: "[bb3,d4,f4,bb4,d5]/4",
  N: "[[bb3,eb4,gb4], [bb4,eb5] ~]/4", O: "[bb3,eb4,gb4]/2", P: "[c4,eb4,ab4]/2", Q: "[[bb3,eb4], gb4@27 ~@5]/2",
  R: "[bb4@7 ~@9 [gb4,bb4]@14 ~@2, [c5,f5] db5, ~@8 a4@9 ~@15]/4", S: "[ab4,c5,eb5]/2", T: "[c4,e4,g4]/4",
  U: "[c4,f4,ab4]/2", V: "[d4,f4,bb4]/2", W: "[[c4,f4], ab4@27 ~@5]/2",
  X: "[c5@7 ~@9 [ab4,c5]@14 ~@2, [d5,g5] eb5, ~@8 b4@9 ~@15]/4", Y: "[bb4,d5,f5]/2",
})).s("gm_string_ensemble_2").gain(0.2).pan(0.7)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@37 A B@6 C@8 D@4 ~@6 E@6 ~@3 F@5 ~@13 G H@6 I@3 J@7 ~@9 K L@6 M@3 N@7 L@6 M@3 O@7 L@6 M@3 P@7 ~@12
>`.pickRestart({
  A: "~@11 ab3@5, ~@3 eb3@5",
  B: "[~@16 eb3@5 ~@6 ab3@5 ~@11 eb4@5 ~@22 db4@5 db4@5 ab3@5 ab3@10 eb4, ab3@10 ~ ab3@16 ~@5 db4@22 ab3@26 ~@16, ~ bb3@31 bb3@26 db4@11 ~@11 db4@10 ~@6, ~@6 eb3@10 c4@27 ab3@5 e4@16 e4@32, ~@21 eb3@11 ab3@6 eb3@10 eb4@32 ~@16]/6",
  C: "[db4@5 ~@6 ab3@5 ~@10 ab3@5 ~@6 eb3@5 ~ [eb3,ab3]@5 eb3@5 ~@5 ab3@6 ~@11 eb4@4 ~@12 db4@5 ~@11 db4@5 [db4,gb4]@11 [db4,gb4]@5, e4@16 ab3@10 ~@6 bb3@32 bb3@22 ab3@11 ~@5 ab3@26, ~@5 eb4@10 ~ c4@32 c4@27 ab3@5 db4 e4@15 [db4,e4]@11 e4@21, ~@11 db4@32 ~@10 eb3@11 ab3@5 eb3@32 ~@27, ~@21 eb3@11 ab3@11 ~@5 ab3@10 ~@6 db4@15 eb4@32 ~ bb3@5 ~@11]/8", // Ab5 Gb5 Dbm
  D: "[~@6 db4@5 ~@37 ab3@16, [e4,gb4] c4@2 ~, ~@6 eb4@21 ab3@5 bb3@32, ~@11 db4@26 ab3@11 ~@16, ~@11 bb3@5 ab3@6 eb3@21 eb3@21]/4", // Esus2
  E: "[~@24 f4@19 ~@5, ~@8 bb3@19 bb3@32 ~@37, ~@11 eb4@32 gb4@32 ~@21, ~@13 gb4@19 bb4@32 ~@32, ~ f4@2 ~@3]/6",
  F: "[~@27 bb3@6 bb3@35 ~@12, f4@2 ~@3, ~@3 db4@5 db4@16 ~@16, ~@11 bb3@16 ~@53, ~@11 c4@13 ~@16]/5",
  G: "~@11 bb3@5, ~@3 f3@5",
  H: "[~@16 f3@5 ~@6 bb3@5 ~@11 f4@5 ~@22 eb4@5 eb4@5 bb3@5 bb3@10 f4, bb3@10 ~ bb3@16 ~@5 eb4@22 bb3@26 ~@16, ~ c4@31 c4@26 eb4@11 ~@11 eb4@10 ~@6, ~@6 f3@10 d4@27 bb3@5 gb4@16 gb4@32, ~@21 f3@11 bb3@6 f3@10 f4@32 ~@16]/6",
  I: "[eb4@5 ~@6 bb3@5 ~@10 bb3@5 ~@6 f3@5 ~ [f3,bb3]@5, gb4@8 bb3@5 ~@3 c4@8, ~@5 f4@10 ~ d4@32, ~@11 eb4@32 ~@5, ~@21 f3@11 bb3@11 ~@5]/3", // Bb5
  J: "[f3@5 ~@5 bb3@6 ~@11 f4@4 ~@12 eb4@5 ~@11 eb4@5 [eb4,ab4]@11 [eb4,ab4]@32 ~@5, d4@27 bb3@5 eb4 gb4@5 bb3@11 ~@5 bb3@32 ~@26, bb3@10 ~@6 c4@32 [eb4,gb4]@11 gb4@32 ~@21, ~@5 f3@11 bb3@5 f3@32 ~@59, ~@16 eb4@15 f4@32 ~ c4@5 ~@43]/7", // Ab5 Ebm
  K: "~@11 c4@5, ~@3 g3@5",
  L: "[~@16 g3@5 ~@6 c4@5 ~@11 g4@5 ~@22 f4@5 f4@5 c4@5 c4@10 g4, c4@10 ~ c4@16 ~@5 f4@22 c4@26 ~@16, ~ d4@31 d4@26 f4@11 ~@11 f4@10 ~@6, ~@6 g3@10 e4@27 c4@5 ab4@16 ab4@32, ~@21 g3@11 c4@6 g3@10 g4@32 ~@16]/6",
  M: "[f4@5 ~@6 c4@5 ~@10 c4@5 ~@6 g3@5 ~ [g3,c4]@5, ab4@16 c4@5 g3@11 d4@16, ~@5 g4@27 c4@11 ~@5, ~@11 f4@32 ~@5, ~ e4@2]/3", // C5
  N: "[g3@5 ~@5 c4@6 ~@11 g4@4 ~@12 f4@5 ~@11 f4@5 [f4,bb4]@11 [f4,bb4]@27 ~@5 c4@5, e4@27 c4@5 f4 ab4@5 c4@11 ~@5 c4@32 ~@26, c4@10 ~@6 d4@32 [f4,ab4]@11 ab4@32 ~@21, ~@5 g3@11 c4@5 g3@32 ~@49 g3@10, ~@16 f4@15 g4@32 ~ d4@5 ~@43]/7", // Bb5 Fm
  O: "[g3@5 ~@5 c4@6 ~@11 g4@4 ~@12 f4@5 ~@11 f4@5 [f4,bb4]@11 ~@32 c4@5, e4@27 c4@5 f4 ab4@5 c4@11 ~@5 c4@32 ~@26, c4@10 ~@6 d4@32 [f4,ab4]@11 ab4@32 ~@21, ~@5 g3@11 c4@5 g3@32 ~@49 g3@10, ~@16 f4@15 g4@32 ~ d4@5 ~@6 [f4,bb4]@32 ~@5]/7", // Bb5 Fm Bb5
  P: "[g3@5 ~@5 c4@6 ~@11 g4@4 ~@12 f4@5 ~@11 f4@5 [f4,bb4]@11 [f4,bb4]@32 ~@5, e4@27 c4@5 f4 ab4@5 c4@11 ~@5 c4@32 ~@26, c4@10 ~@6 d4@32 [f4,ab4]@11 ab4@32 ~@21, ~@5 g3@11 c4@5 g3@32 ~@59, ~@16 f4@15 g4@32 ~ d4@5 ~@43]/7", // Bb5 Fm
})).s("gm_acoustic_guitar_nylon").gain(0.26).pan(0.7)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@41 A@2 B C ~@4 D@2 E@2 ~@40 F@2 G H ~@4 I@2 J@3 ~@13 K@2 L M ~@4 N@2 O@3 ~@3 K@2 L M ~@4 N@2 O@3 ~@3 K@2 L M ~@4 N@2
  O@3 ~@12
>`.pickRestart({
  A: "eb3/2", B: "~@11 db4@5", C: "~@5 db4@6 ~@5", D: "~ ab3@5 ~@10", E: "[~@6 bb3@21 ~@5]/2", F: "f3/2",
  G: "~@11 eb4@5", H: "~@5 eb4@6 ~@5", I: "~ bb3@5 ~@10", J: "[~@3 c4@16 ~@5]/3", K: "g3/2", L: "~@11 f4@5",
  M: "~@5 f4@6 ~@5", N: "~ c4@5 ~@10", O: "[~@3 d4@16 ~@5]/3",
})).s("gm_acoustic_guitar_nylon").gain(0.15).pan(0.7)

// chords · epiano2
const epiano2 = note(`<
  ~@4 A@3 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K L M@2 N@2 O@2 P Q R@2 ~@19 S@3 T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 AA@2 AB@2 AC
  AD AE@2 AF@2 AG@2 AH AI AJ@2 ~@77 AK AL@8 ~
>`.pickRestart({
  A: "[~@43 c4@5, ~@15 ab3@32 ~, ~@15 c4@6 ~ c4@21 ~@5, ~@16 eb4@11 eb4@21, ~@2 bb3]/3",
  B: "[ab3@5 ~@22 c4@5, eb4, c4@10 ~ c4@16 ~@5, ~@3 ab3@13, ~ bb3]/2",
  C: "[ab3@5 ~@22 c4@5, e4, db4@10 db4@21 ~, ~@5 ab3@26 ~, ~ bb3]/2",
  D: "[~@11 db4@5 ~@11 bb3@5, db4@5 ~@3 db4@8, ab3@5 ab3@27, ~ e4@31, ~@21 c4@11]/2",
  E: "[ab3@5 ~@22 c4@5, eb4, c4@11 c4@16 ~@5, ~@5 ab3@27, ~ bb3]/2",
  F: "[~@21 c4@10 ~, eb4@27 ~@5, c4@11 c4@10 ~@11, ~@3 ab3@13, ~ bb3]/2",
  G: "[ab3@5 ~@11 bb3@16, db4@5 db4@8 ~@3, ~@5 ab3@26 ~]/2",
  H: "[db4@11 ~@5 [ab3,bb3,e4]@16, e4 ~, ab3@5 ~@6 db4@21]/2", I: "[~@10 eb4@16 eb4@5 ~, ab3, ~@5 c4@16 ~@11]/2",
  J: "[~@27 bb3@5, ab3, ~@5 c4@16 c4@11, ~@11 eb4@21, ~ db4]/2", K: "[db4,e4]@10 e4@5 ~, ab3@5 ~@11",
  L: "[bb3,e4]@10 e4@5 ~, ab3@5 ~@11", // Bbdim
  M: "[ab3@5 ab3@6 ~@5 [db4,gb4]@11 [bb3,db4,gb4]@5, [db4,e4]@11 e4@21, ~@4 bb3 ~@3]/2", // Gb5 Gb Dbm
  N: "[c4@11 ~@16 c4@5, [eb4,ab4], ab3@7 ~@4 c4@16 ~@5, ~ bb3]/2", // Ab5
  O: "[~@27 ab3@5, c4@10 ~ c4@21, ab3@5 ab3@21 ~@6, ~ eb4@31, ~ bb3]/2", P: "[db4,e4]@11 e4@5, ab3@5 ~@11",
  Q: "e4, bb3@11 ~@5, ab3@5 ~@11", R: "[bb3,db4,gb4]/2",
  S: "[~@43 d4@5, f5 d5@2, ~@5 bb4@11 f4@11 f4@21, ~@11 c5@21 c4@16, ~@22 d4@21 ~@5]/3",
  T: "[bb3@5 ~@22 d4@5, f4, d4@10 ~ d4@16 ~@5, ~@3 bb3@13, ~ c4]/2",
  U: "[bb3@5 ~@22 d4@5, gb4, eb4@10 eb4@21 ~, ~@5 bb3@26 ~, ~ c4]/2",
  V: "[~@11 eb4@5 ~@11 c4@5, eb4@5 ~@3 eb4@8, bb3@5 bb3@27, ~ gb4@31, ~@21 d4@11]/2",
  W: "[bb3@5 ~@22 d4@5, f4, d4@11 d4@16 ~@5, ~@5 bb3@27, ~ c4]/2",
  X: "[~@21 d4@10 ~, f4@27 ~@5, d4@11 d4@10 ~@11, ~@3 bb3@13, ~ c4]/2",
  Y: "[bb3@5 ~@11 c4@16, eb4@5 eb4@8 ~@3, ~@5 bb3@26 ~]/2",
  Z: "[eb4@11 ~@5 [bb3,c4,gb4]@16, gb4 ~, bb3@5 ~@6 eb4@21]/2", AA: "[~@10 f4@16 f4@5 ~, bb3, ~@5 d4@16 ~@11]/2",
  AB: "[~@27 c4@5, bb3, ~@5 d4@16 d4@11, ~@11 f4@21, ~ eb4]/2", AC: "[eb4,gb4]@10 gb4@5 ~, bb3@5 ~@11",
  AD: "[c4,gb4]@10 gb4@5 ~, bb3@5 ~@11", // Cdim
  AE: "[bb3@5 bb3@6 ~@5 [eb4,ab4]@11 [c4,eb4,ab4]@5, [eb4,gb4]@11 gb4@21, ~@4 c4 ~@3]/2", // Ab5 Ab Ebm
  AF: "[d4@11 ~@16 d4@5, [f4,bb4], bb3@7 ~@4 d4@16 ~@5, ~ c4]/2", // Bb5
  AG: "[~@27 bb3@5, d4@10 ~ d4@21, bb3@5 bb3@21 ~@6, ~ f4@31, ~ c4]/2", AH: "[eb4,gb4]@11 gb4@5, bb3@5 ~@11",
  AI: "gb4, c4@11 ~@5, bb3@5 ~@11", AJ: "[c4,eb4,ab4]/2", AK: "~@15 eb4",
  AL: "[~@33 c5 c5@30, [ab4,c5]@26 [ab4,c5]@32 ~@6 g3@61 ~@3, ~@21 eb4@32 ~@9 c4@66, ~ [f4,bb4,d5] e4@2, ~@33 g4@31]/8", // Ab Bb
})).s("gm_epiano2").gain(0.24)

// chords · epiano2 · soft notes
const epiano2_soft = note(`<
  ~@15 A B C@2 D ~@2 E ~@2 F@2 G@2 H@2 ~@2 I@2 ~@32 J K L@2 M ~@2 N ~@2 O@2 P@2 Q@2 ~@2 R@2 ~@89
>`.pickRestart({
  A: "ab3@3 ~@5", B: "~@11 eb4@5", C: "[~@27 db4@5, e4]/2", D: "~@5 ab3@10 ~", E: "~@3 c4@5, bb3",
  F: "[~@21 ab3@5 [ab3,bb3]@6, ~@5 ab3@10 ~@17, ~@5 db4@11]/2", G: "[~@11 db4@5 ~@5 bb3@6 ~@5, ~@11 ab3@21]/2",
  H: "[~@7 ab3@25]/2", I: "[~@27 bb3@5, ~@5 ab3@11 ~@5 ab3@11, ~@11 db4@21]/2", J: "bb3@3 ~@5", K: "~@11 f4@5",
  L: "[~@27 eb4@5, gb4]/2", M: "~@5 bb3@10 ~", N: "~@3 d4@5, c4",
  O: "[~@21 bb3@5 [bb3,c4]@6, ~@5 bb3@10 ~@17, ~@5 eb4@11]/2", P: "[~@11 eb4@5 ~@5 c4@6 ~@5, ~@11 bb3@21]/2",
  Q: "[~@7 bb3@25]/2", R: "[~@27 c4@5, ~@5 bb3@11 ~@5 bb3@11, ~@11 eb4@21]/2",
})).s("gm_epiano2").gain(0.16)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@20 A@3 ~@2 B@6 ~@3 C@6 D@8 E@7 ~@17 F@3 ~@2 G@6 ~@3 H@6 I@8 J@5 ~ K@5 L@2 ~@2 M@3 N@8 O@5 M@3 N@8 O@5 M@3 N@8 O@5 ~
  P@5 Q@2 ~@5
>`.pickRestart({
  A: "[~@17 c4@31, ~@15 eb3@32 ~, ~ ab3@2]/3",
  B: "[~@29 db4@16 ~@3, e3@15 ~ e3@16 e3@16 e3@32 ~@16, ~@5 ab3@16 ab3@16 ~ ab3@15 ab3@32 ~@11, ~@10 db4@16 db4@16 ~ db4@15 ~@38]/6",
  C: "[~@37 ab3@11, ~@7 [db3,gb3,bb3]@16 bb2@16 ~@9, ~@15 db4@31 ab3@2 eb4@11 ab3@15 ~@22, ~@16 gb4@31 eb3@32 ~@17, ~@47 c4@17 [bb3,c4,eb4]@32]/6", // Gb Cm7
  D: "[~@27 ab3@5 ab3@11 ~@48 ab3@5 eb3@11 ~@15 ab3@5 ~, ~@14 [ab2,db3]@29 ab3@11 ab3@25 [eb3,ab3] ab2@32 ~@16, ~@14 ab3@2 e4@16 e4@32 e4@16 bb3 c4@5 eb3@10 [ab3,bb3,c4]@16 [bb3,c4]@16, ~@15 db4@17 db4@16 db4@10 ~ db4@16 db4@32 eb3@11 eb3@10, ~@8 eb4@16 ~@11 eb4@16 ~@5 ab3@5 ~@3]/8", // Db5 Ab5 Ab Bbsus2
  E: "[eb3@5 ~@6 ab3@32 ~@37 eb4@32, [ab2,bb3,c4]@2 ~ [gb2,db3,db4]@2 ~@2, ab3@11 ~@36 bb3@32 [ab2,eb3,ab3,c4]@32 ~, ~@5 eb3@32 ~@12 gb4@32 ~@31]/7", // Ab Gb5 Ab
  F: "[~@17 d4@31, ~@15 f3@32 ~, ~ bb3@2]/3",
  G: "[~@29 eb4@16 ~@3, gb3@15 ~ gb3@16 gb3@16 gb3@32 ~@16, ~@5 bb3@16 bb3@16 ~ bb3@15 bb3@32 ~@11, ~@10 eb4@16 eb4@16 ~ eb4@15 ~@38]/6",
  H: "[~@37 bb3@11, ~@7 [eb3,ab3,c4]@16 c3@16 ~@9, ~@15 eb4@31 bb3@2 f4@11 bb3@15 ~@22, ~@16 ab4@31 f3@32 ~@17, ~@47 d4@17 [c4,d4,f4]@32]/6", // Ab Dm7
  I: "[~@27 bb3@5 bb3@11 ~@48 bb3@5 f3@11 ~@15 bb3@5 ~, ~@14 [bb2,eb3]@29 bb3@11 bb3@25 [f3,bb3] bb2@32 ~@16, ~@14 bb3@2 gb4@16 gb4@32 gb4@16 c4 d4@5 f3@10 [bb3,c4,d4]@16 [c4,d4]@16, ~@15 eb4@17 eb4@16 eb4@10 ~ eb4@16 eb4@32 f3@11 f3@10, ~@8 f4@16 ~@11 f4@16 ~@5 bb3@5 ~@3]/8", // Eb5 Bb5 Bb Csus2
  J: "[f3@5 ~@6 bb3@32 ~@6 ab4@31, [bb2,c4,d4]@2 ~ [ab2,eb3,eb4]@2, bb3@11 ~@36 c4@32 ~, ~@5 f3@32 ~@43]/5", // Bb Ab5
  K: "[~@16 [c4,f4]@31 ~@2 db4@31, ~@15 [c3,f3,a3]@32 gb3@32 ~, ~@3 [gb2,bb3]@2]/5", L: "[~ eb4@31, [ab2,ab3,c4]]/2",
  M: "[~@13 c4@11, g4 [d4,e4,g4]@2, ~@11 c4@15 ~@22]/3", // Em7
  N: "[~@27 c4@5 c4@11 ~@48 c4@5 g3@11 ~@15 c4@5 ~, ~@14 [c3,f3]@29 c4@11 c4@25 [g3,c4] c3@32 ~@16, ~@14 c4@2 ab4@16 ab4@32 ab4@16 d4 e4@5 g3@10 [c4,d4,e4]@16 [d4,e4]@16, ~@15 f4@17 f4@16 f4@10 ~ f4@16 f4@32 g3@11 g3@10, ~@8 g4@16 ~@11 g4@16 ~@5 c4@5 ~@3]/8", // F5 C5 C Dsus2
  O: "[g3@5 ~@6 c4@32 ~@6 bb4@31, [c3,d4,e4]@2 ~ [bb2,f3,f4]@2, c4@11 ~@36 d4@32 ~, ~@5 g3@32 ~@43]/5", // C Bb5
  P: "[~@16 [d4,g4]@31 ~@2 eb4@31, ~@15 [d3,g3,b3]@32 ab3@32 ~, ~@3 [ab2,c4]@2]/5", Q: "[~ f4@31, [bb2,bb3,d4]]/2",
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@5 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B C A ~ A ~ A ~ A D A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@14
>`.pickRestart({
  A: "x", B: "x ~@4 x ~@5 x ~@4", C: "x ~@6 x", D: "~@5 x ~@5 x ~@4",
})).gain(0.26)

// drums · rim
const rim = s("rim").struct(`<
  ~@12 A ~@7 A ~@5 A ~@3 A ~ A ~ A ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~
  A ~ A ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~ A ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
  A ~@13
>`.pickRestart({
  A: "x",
})).gain(0.46)

// drums · snare
const snare = s("sd").struct(`<
  ~@38 A ~@3 A ~@3 A ~@3 A ~@39 A ~@3 A ~@3 A ~@3 A B A ~@9 C ~ A ~@3 A ~@3 A ~@3 A B A ~ A ~@3 A ~@3 A ~@3 A B A ~ A
  ~@3 A ~@3 A ~@3 A B A ~@13
>`.pickRestart({
  A: "x", B: "~@11 x ~@4", C: "x ~@10 x ~@4",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@36 A ~@51 A ~@15 B ~@25 B ~@15 B ~@15 B ~@13>".pickRestart({
  A: "~@5 x ~@5 x ~@4", B: "~@11 x ~@4",
})).gain(0.41)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@5 A@30 B A@19 B ~ A@30 B A@18 ~ A@6 ~@2 A@48 B ~@12>".pickRestart({
  A: "x ~@4 x ~@5 x ~@4", B: "x",
})).gain(0.31)

// drums · mid tom
const mid_tom = s("mt").struct("<~@104 A ~@25 A ~@15 A ~@15 A ~@13>".pickRestart({
  A: "~@5 x ~@10",
})).gain(0.31)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@8 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~ A
  ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@5 A ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@13
>`.pickRestart({
  A: "x",
})).gain(0.41)

// drums · splash
const splash = s("cr").struct(`<
  ~@5 A ~@19 A ~@11 A ~@5 A ~ A ~@5 A ~ A ~@3 A ~@19 A ~@11 A ~@5 A ~ A ~@5 A ~ A ~@9 A ~@5 A ~ A ~@5 A ~ A ~@5 A ~ A
  ~@5 A ~ A ~@5 A ~ A ~@5 A ~ A ~@12
>`.pickRestart({
// … 38 more lines

More by Backstreet Boys