Strudelify
The One cover art

1999 · Millennium

The One

Backstreet Boys

KeyB♭ majorTempo110 bpm
0:00/0:00
// The One — Backstreet Boys
// 110 bpm, 4/4, key A# major. 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 104 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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(`<
  ~@6 A@2 B ~ C D E F D E D G H I J K L I M N O P Q R S T U V C D E F D E D G H I J K L I M N O P Q R S T U W X Y Z AA
  AB AC AD AE AF AC AG AE AH AI@2 ~@4 AJ AK AL AM O P Q R S T U V O P Q R S T U W X Y Z AA AB AN@2
>`.pickRestart({
  A: "[g1@31 ~]/2", B: "g1", C: "g1 ~@2 g1 ~@2 g1@6 ~@2 g1 ~", D: "g1 ~@2 g1 ~@2 g1@7 ~ g1 ~",
  E: "g1 ~@2 g1 ~@2 g1@8 f1@2", F: "g1 ~@2 g1 ~@2 g1@8 bb1@2", G: "eb1@2 ~ eb1 ~@2 eb1 ~ f1@2 ~ f1 ~@2 f1 ~",
  H: "db2@2 ~ db2 ~@2 db2@6 ~@2 db2@2", I: "bb1@2 ~ bb1 ~@2 bb1@7 ~ bb1@2", J: "gb1@2 ~ gb1 ~@2 gb1@6 ~@2 gb1@2",
  K: "ab1@2 ~ ab1 ~@2 ab1@3 ~ ab1@2 eb2@2 c2@2", L: "db2@2 ~ db2 ~@2 db2@8 ab1@2", M: "gb1@2 ~ gb1 ~@2 gb1@7 ~ gb1@2",
  N: "ab1@13 ~@3", O: "bb1@3 bb1 ~@2 bb1@3 ~ bb1 ~ bb1 ~ bb1@2", P: "f1@2 ~ f1@2 ~ f1@3 ~ f1 ~ f1 ~ f1@2",
  Q: "g1@2 ~ g1 ~@2 g1@3 ~ g1 ~ g1@2 d1@2", R: "eb1@2 ~ eb1@2 ~ eb1@2 f1@2 ~ f1@2 ~ f1@2",
  S: "bb1@2 ~ bb1 ~@2 bb1@3 ~ bb1@2 c1@2 d1@2", T: "f1@3 f1 ~@2 f1@3 ~ f1 ~ f1@2 d1@2",
  U: "g1@2 ~ g1 ~@2 g1@3 ~ g1 ~ g1@2 f1@2", V: "eb1@2 ~ eb1@2 ~ eb1@2 f1@2 ~ f1@2 ~ f1 ~",
  W: "eb1@2 ~ eb1@2 ~ eb1 ~ f1@3 ~ gb1@3 ~", X: "g1@2 ~ g1 ~@2 g1@7 ~ g1@2", Y: "f1@2 ~ f1 ~@2 f1@6 ~@2 f1 ~",
  Z: "eb1@2 ~ eb1 ~@2 eb1@2 c1@5 ~ c1@2", AA: "f1@3 f1 ~@2 f1@3 ~ f1@2 c2@4", AB: "f1@13 ~@3", AC: "db2", AD: "bb1",
  AE: "gb1", AF: "ab1@7 c2", AG: "bb1@7 f1", AH: "ab1", AI: "[~@16 bb0@15 ~, bb1@15 ~]/2", AJ: "bb1 ~@7", AK: "f1 ~@7",
  AL: "g1 ~@7", AM: "eb1@7 ~", AN: "[bb1@15 ~]/2",
})).s("gm_electric_bass_finger").gain(0.31)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G F H ~@8 I J K L M N O P Q R S T U V S W ~@8 I J K L M N O P Q R S T U V X@2 Y Z AA AB AC AD AE AF AG
  AH AE AI AG AJ@2 AK AL AM AN AO AP AQ AR Q R S T U V S W Q R S T U V X@2 Y Z AA AB AS@3
>`.pickRestart({
  A: "~@14 [bb3,d4,f4,bb4] [f3,bb3,d4,f4,bb4]", B: "[f3,bb3,d4,f4,bb4]", C: "[c3,f3,a3,c4]", D: "[d3,g3,bb3,d4]",
  E: "[bb2,eb3,g3,bb3]@4 [c3,f3,a3,c4]@3 ~", F: "[g2,d3,g3] ~@2 [g2,d3,g3] ~@2 [g2,d3,g3] ~@9",
  G: "[g2,c3,g3] ~@2 [g2,c3,g3] ~@2 [g2,c3,g3] ~@9", H: "~@2 [g2,d3,g3]!3 ~ [g2,d3,g3]!2 ~ [g2,d3,g3]!4 ~ [g2,d3,g3] ~",
  I: "[f3,ab3,db4]@3 [f3,ab3,db4]@3 [f3,ab3,db4]@3 [f3,ab3,db4] [f3,ab3,db4]@2 [f3,ab3,db4]@2 [f3,ab3,db4] ~", // Db
  J: "[f3,bb3,db4]@3 [f3,bb3,db4]@3 [f3,bb3,db4]@3 [f3,bb3,db4]!3 [f3,bb3,db4]@2 [f3,bb3,db4]@2", // Bbm
  K: "[db3,gb3,bb3]@3 [db3,gb3,bb3]@3 [db3,gb3,bb3]@3 [db3,gb3,bb3] [db3,gb3,bb3]@2 [db3,gb3,bb3]@2 [db3,gb3,bb3]@2", // Gb
  L: "[eb3,ab3,c4]@3 [eb3,ab3,c4]@3 [eb3,ab3,c4]@4 [eb3,c4]@2 [eb3,bb3,c4,db4]@2 [c4,eb4] ~, ~@10 ab3@5 ~", // Ab Cm Eb7 Cm
  M: "[f3,ab3,db4]@3 [f3,ab3,db4]@3 [f3,ab3,db4]@3 [f3,ab3,db4] [f3,ab3,db4]@2 [f3,ab3,db4]@2 [f3,ab3,db4]!2", // Db
  N: "[f3,bb3,db4]@3 [f3,bb3,db4]@3 [f3,bb3,db4]@3 [f3,bb3,db4] [f3,bb3,db4]@2 [f3,bb3,db4]@2 [f3,bb3,db4]@2", // Bbm
  O: "[gb3,ab3,bb3,db4]@3 [gb3,ab3,bb3,db4]@3 [gb3,ab3,bb3,db4]@3 [gb3,ab3,bb3,db4] [gb3,ab3,bb3,db4]@2 [gb3,ab3,bb3,db4]@2 [gb3,ab3,bb3,db4]@2", // Gb
  P: "[eb3,ab3,c4]@7 ~", // Ab
  Q: "[f3,bb3,d4,f4]@3 [f3,bb3,d4,f4]@3 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@2 [f3,bb3,f4] ~", // Bb Bb5
  R: "[a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@4 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2", // F
  S: "[g3,bb3,f4]@3 [g3,bb3,f4]@3 [g3,bb3,f4]@4 [g3,bb3,f4]@2 [g3,bb3,f4]@2 [g3,bb3,f4]@2", // Gm7
  T: "[g3,bb3,eb4,f4]@3 [g3,bb3,eb4,f4]@3 [g3,bb3,eb4,f4]@2 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2", // Eb F
  U: "[f3,bb3,d4,f4]@3 [f3,bb3,d4,f4]@3 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] ~", // Bb
  V: "[a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@4 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  W: "[g3,bb3,f4]@3 [g3,bb3,f4]@3 [g3,bb3,f4]@2 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4] ~", // Gm7 F
  X: "[[g3,bb3,f4]@3 [g3,bb3,f4]@3 [g3,bb3,f4]@4 [g3,bb3,f4]@2 [g3,bb3,f4]@2 [g3,bb3]@2 [g3,bb3,eb4]@3 [g3,bb3,eb4]@2 [g3,bb3] [g3,bb3,eb4]@2 [a3,c4,f4]@4 [d4,gb4]@2 ~@2, ~@7 f4@5 ~@4]/2", // Gm7 Gm Eb Gm Eb F D
  Y: "[g3,bb3,d4]@3 [g3,bb3,d4]@3 [g3,bb3,d4]@4 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4] ~", // Gm
  Z: "[f3,bb3,d4]@3 [f3,bb3,d4]@3 [f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4] ~", // Bb
  AA: "[g3,bb3,eb4]@3 [g3,bb3,eb4]@3 [g3,bb3,eb4]@2 [g3,bb3,c4,eb4]@3 [g3,bb3,c4,eb4]@3 [g3,bb3,c4,eb4]@2", // Eb Cm7
  AB: "[a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@4 [a3,f4]@2 [a3,bb3,f4]@2 [a3,bb3,f4]!2, ~@5 c4@3", AC: "[f3,a3,c4,f4]@7 ~",
  AD: "[db3,ab3,db4,f4]", AE: "[bb2,f3,bb3,db4,f4]", AF: "[db3,gb3,bb3,db4,f4]", AG: "[ab2,eb3,ab3,c4,eb4]",
  AH: "~@7 ab2, [db3,f3,ab3,db4,f4]", AI: "[gb2,gb3,bb3,db4,f4] ~@3",
  AJ: "[bb2@14 bb2@2 bb2@15 ~, [bb1,f3,bb3,d4]@31 ~]/2", // Bb
  AK: "[f3,bb3,d4,f4] ~ [f3,bb3,d4] [f3,bb3,d4,f4] ~ [bb3,d4] [f3,bb3,d4,f4]!3 ~ [f3,bb3,d4,f4] ~ [f3,bb3,d4,f4] ~ [f3,bb3,d4,f4] ~", // Bb
  AL: "[a3,c4,f4] ~ [a3,c4] [a3,c4,f4] ~ [a3,c4,f4]!4 ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F Am F
  AM: "[g3,bb3,f4] ~ [g3,bb3] [g3,bb3,f4] ~ [g3,bb3,f4] [g3,bb3] [g3,bb3,f4]!2 ~ [g3,bb3,f4] ~ [g3,bb3,f4] ~ [g3,bb3,f4] ~", // Gm7 Gm Gm7 Gm Gm7
  AN: "[g3,bb3,eb4] ~ [g3,bb3,eb4]!2 ~ [g3,bb3,eb4]!3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // Eb F
  AO: "[f3,bb3,d4,f4] ~ [f3,bb3,d4] [f3,bb3,d4,f4] ~ [f3,bb3,d4,f4]!4 ~ [f3,bb3,d4,f4] ~ [f3,bb3,d4,f4] ~ [f3,bb3,d4,f4] ~", // Bb
  AP: "[a3,c4,f4] ~ [a3,c4,f4]!2 ~ [a3,c4,f4]!4 ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  AQ: "[g3,bb3,f4] ~ [g3,bb3,f4]!2 ~ [g3,bb3,f4]!4 ~ [g3,bb3,f4]!2 ~ [g3,bb3,f4] f4 [g3,bb3]", // Gm7 Gm
  AR: "[eb3,g3,bb3,eb4]@8 [f3,a3,c4,f4]@7 ~", AS: "[[f3,a3,c4,f4]@7 ~ [bb2,bb3,d4]@16, ~@15 [bb1,d3,f3]@32 ~]/3",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.3)

// other · lead 8 bass lead
const lead_8_bass_lead = note("<~@6 A B A B ~@12 C D E F ~@8 G ~@11 C D E F ~@54>".pickRestart({
  A: "[d3,g3,bb3] ~@2 [d3,g3,bb3] ~@2 [d3,g3,bb3] ~@9", B: "[d3,f3,a3] ~@2 [d3,f3,a3] ~@2 [d3,f3,a3] ~@9",
  C: "~@13 ab4 db5 ab4", D: "db4 ab4 db5 ab4 db4 ab4 db5 ab4 db4 ab4 db5 ab4 db4 ab4 db5 db4",
  E: "db4 ab4 db5 ab4 db4 ab4 db5 ab4 db4 ab4 db5 ab4 db4 ab4 db5 ~", F: "[ab3,eb4]@15 ~", G: "[g4,d5,g5]@5 ~@11",
})).s("gm_lead_8_bass_lead").gain(0.05).pan(0.4)

// other · lead 8 bass lead · soft notes
const lead_8_bass_lead_soft = note(`<
  ~@22
  [db4 ab4 db5 ab4 db4 ab4 db5 ab4 db4 ab4 db5 ab4 db4 ~@3]
  ~@23
  [db4 ab4 db5 ab4 db4 ab4 db5 ab4 db4 ab4 db5 ab4 db4 ~@3]
  ~@57
>`).s("gm_lead_8_bass_lead").gain(0.02).pan(0.4)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@18 A@4 B@3 C D E F G H@2 D I ~@8 A@4 B@3 C D E F G H@2 D ~@24 D E F G H@2 D I D E F G H@2 D ~@8
>`.pickRestart({
  A: "[db5@47 c5@17]/4", B: "[~@16 ab5@11 gb5@2 ~@2 db5@16 ~, db5@5 ~@3, ~@16 f5 ~@13 f5@3 ~@15]/3", C: "ab4@7 ~",
  D: "bb4", E: "f4", F: "g4", G: "eb4 f4", H: "[bb4@15 a4@17]/2", I: "f5@8 c5@7 ~",
})).s("gm_string_ensemble_1").gain(0.06)

// chords · piano
const piano = note(`<
  ~@4 A@2 ~@2 B@2 ~@14 C D E F G H I J K L M ~@13 C D E F G H I J N@2 ~@4 O@4 P@3 Q@4 ~@8 E F G H I R K L E F G H I R
  N@2 S T U V ~ W@2
>`.pickRestart({
  A: "[~@8 a4@8 f4@6 ~@2 bb4@4 a4@3 ~, bb4@23 ~@9]/2", B: "[~@2 [d5,g5,bb5]@13 ~]/2", C: "~@7 db4, ~@5 gb3@3, ~@3 ab3",
  D: "[ab2,eb3,c4]@7 ~", E: "bb3@8 ~@3 c4@3 d4 ~, [bb2,d4,f4]@15 ~, ~@8 bb3@7 ~", F: "~@7 eb4, c4, ~@3 d4",
  G: "[bb3,f4]@3 [bb3,f4]@3 ~@8 eb4@2, ~@3 [bb3,f4]@5, ~@3 d4", H: "f4@3 f4@3 f4@2 f4@8",
  I: "bb3@8 [bb2,bb3]@3 [c3,c4]@2 ~ [d3,d4]@2", J: "~@6 d4 eb4, [c3,c4]@15 ~, ~@8 f3@7 ~",
  K: "[bb3,f4]@3 [bb3,f4]@3 [bb3,f4]@2 ~@6 a4@2, ~ [bb3,f4], ~@11 bb4@5", // Bb5
  L: "~@3 bb3@3 bb3@2 ~@3 d4@3 c4 ~, f4@4 [a3,c4]@3 ~", M: "[bb4,d5,g5]@13 ~@3",
  N: "[[bb3,f4]@3 [bb3,f4]@3 [bb3,f4]@2 ~@8 [bb3,f4]@7 ~ c4@4 [gb3,a3,d4]@2 ~@2, ~ [bb3,f4] ~@2, ~@11 bb4@12 ~@9, ~@14 a4@9 ~@9]/2", // Bb5 D Bb5
  O: "[~@8 c4@3 db4@3 eb4 ~ [db3,ab3,db4,f4]@15 ~ [bb3,c4,db4,f4]@15 ~@14 f4@3, ~@15 f3@15 ~ f3@16 [gb3,bb3]@17, ~@3 db4, ~@48 f4@13 ~@3, ~@29 gb4@3]/4", // Db Bbm Gb
  P: "[~@12 eb5@2 ~ eb5 ~@24 eb4@3 ~@3 db4@2, [c4,eb4]@8 db4@7 ab5@9, ~@5 ab4@2 ab4@4 ab4@9 [f4,ab4]@4, ~@2 f5!2 db5@2, ~@27 gb5@5 ~@11 eb4@5]/3", // Cm Fm
  Q: "[[gb3,db4,ab4]@15 ~ [c4,eb4]@15 ~ bb3@15 ~ [d4,f4,bb4]@16, ~@15 [eb3,ab3]@16 d3@32 ~, ~ [bb1,bb2,f3], ~@47 bb3@16 ~]/4", // Gbsus2 Cm Bb Ab5 Bb5
  R: "~@12 d4@2 eb4 ~, [c3,c4]@15 ~, ~@8 f3@7 ~", S: "[a3,bb3,d4]@7 [a3,bb3,d4], [g2,g3]",
  T: "g3 ~@11 bb3@4, [f3,d4], bb3@3 ~, ~@5 f4@3", U: "[eb3,bb3,eb4,f4]@15 ~", V: "[c4,f4]@3 ~",
  W: "[[bb0,bb1,f3,bb3,f4]@31 ~]/2", // Bb5
})).s("gm_piano").gain(0.11).pan(0.6)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@2 A@4 B@4 C@6 D@2 E@2 F@6 G@8 C@6 D@2 E@2 F@6 H@8 I@5 J@7 K@3 ~@4 L M N@2 G@8 H@8 I@5 O@2
>`.pickRestart({
  A: "[[bb3,d4]@16 [a3,c4]@15 d4@17 eb3@8 [f3,a3,c4]@7 ~, f3@31 [g3,bb3]@25 ~@8]/4", // Bb Am F Gm
  B: "[[g3,bb3]@16 a3@16 [g3,bb3]@16 a3@13 ~@3, d3@61 ~@3]/4", // Gm
  C: "[[g3,bb3]@16 [f3,a3]@16 [g3,bb3]@15 ~ a3@15 [g3,bb3]@17 [f3,a3]@15 ~, d4@95 ~, ~@47 f3@16 ~@33]/6", // Gm F Gm F
  D: "[d4@15 ~ eb4@6 ~ [f3,a3,c4,f4]@7 ~@2, [g3,bb3]@23 ~@9, ~@15 eb3@8 ~@9]/2", E: "[[db3,ab3] [f3,bb3], [db4,f4]]/2",
  F: "[[gb3,bb3,db4,f4]@15 [eb3,c4,eb4]@16 ~@32 gb3@16 [eb3,ab3,c4,eb4]@16 ~, ~@15 ab3@32 ~ bb3@31 ~@17, ~@31 f4@48 ~@17, ~@31 f3@32 ~@33, ~@32 db4@47 ~@17]/6", // Gbmaj7 Cm Ab
  G: "[[f3,bb3,d4]@15 ~ c4@15 ~@17 eb4@7 ~ [a3,c4]@7 d4@16 [a3,c4]@16 d4@16 ~ eb4@7 ~ c4@8, f4@7 ~, ~@15 bb3@41 ~@7 bb3@24 ~@41, ~@15 a3@17 g3@23 ~ f3@38 ~ [g3,bb3]@25 ~@8, ~@47 eb3@8 ~@56 eb3@8 [f3,a3]@9]/8", // Bb Am Gm F
  H: "[[f3,bb3,d4]@15 ~ c4@15 ~@17 eb4@7 ~ [a3,c4]@7 d4@16 [a3,c4]@16 [g3,bb3,d4] [g3,bb3,d4]@15 [g3,bb3,eb4]@8 f3@4 gb3@3 ~@2, f4@7 ~, ~@15 bb3@41 ~@7 bb3@24 ~@32 [a3,c4]@7 ~@2, ~@15 a3@17 g3@23 ~ f3@38 ~@34, ~@47 eb3@8 ~@73]/8", // Bb Am Gm Eb Am
  I: "[g3@16 f3@15 [eb3,bb3]@8 ~ [c3,c4]@7 ~@17 a3@15 ~, [bb3,d4]@31 [g3,eb4]@16 [f3,c4,f4]@31 ~@2, ~@39 bb3@8 ~@33]/5", // Eb5 C Bb Cm F5
  J: "[ab3@16 ~@15 gb3@16 [eb3,c4]@16 ~@32 gb3@16 [eb3,c4], db4@47 ~@16 db4@48 ~, f3@31 ab3@81, ~@16 bb3@31 ~@16 f3@32 ~@17, ~@79 bb3@32 ~]/7", // Cm
  K: "[~@15 [bb2,f3,bb3]@31 ~@2]/3", L: "bb3", M: "c4", N: "[~@15 eb4@8 ~ [c4,f4]@7 ~, bb3@31 ~]/2",
  O: "[[bb1,bb2,f3,bb3,d4]@29 ~@3]/2", // Bb
})).s("gm_synth_strings_1").gain(0.08)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~ A B ~@6 C D E F G H G I J K L M N O L P Q R S T U V S W X D E F G H G I J K L M N O L P Q Y S T U V S W ~@5 Z ~@10
  AA AB AC AD AE AF AG AH R S T U V S W X Y S T U V S W ~@5 AI@3
>`.pickRestart({
  A: "~@14 [bb3,d4,f4,bb4] [f3,bb3,d4,f4,bb4]", B: "[f3,bb3,d4,f4,bb4]",
  C: "~@2 [g2,d3,g3]!3 ~ [g2,d3,g3]!2 ~ [g2,d3,g3]!4 ~ [g2,d3,g3] ~", // G5
  D: "[d3,g3,d4]@4 [d3,g3] ~ [d3,g3,bb3,d4]@4 [d3,g3,bb3,d4]@2 [d3,g3,bb3,d4]@3 ~", // G5 Gm
  E: "[d3,f3,bb3,d4]@3 [d3,f3,bb3,d4] ~@2 [d3,f3]@4 [d3,f3]@2 [d3,f3,bb3,d4]@2 [f3,bb3,d4] ~, ~@3 [bb3,d4]@3 ~@2", // Bb Dm Bb
  F: "[d3,g3,bb3,d4]@3 [d3,g3,bb3,d4] ~@2 [d3,g3,bb3,d4]@4 [d3,g3,bb3,d4]@2 [d3,g3,d4]@2 [d3,g3,d4]@2, ~@3 bb3", // Gm G5
  G: "[d3,a3,d4]@3 [d3,a3,d4] ~@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2", // D5
  H: "[d3,g3,bb3,d4]@3 [d3,g3,bb3,d4] ~@2 [d3,g3,bb3,d4]@4 [d3,g3,bb3,d4]@2 [d3,g3,bb3,d4]@2 [d3,g3] ~", // Gm G5
  I: "[d3,g3,bb3,d4]@3 [d3,g3,bb3,d4] ~@2 [d3,g3,bb3,d4]@4 [d3,g3,bb3,d4]@2 [d3,g3,bb3,d4]@2 [d3,g3,bb3,d4] ~", // Gm
  J: "[eb3,g3,bb3,eb4]@3 [eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] ~ [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 [f3,a3,c4,f4] ~", // Eb F
  K: "[ab3,db4,f4]@3 [ab3,db4,f4]@3 [ab3,db4,f4]@4 [ab3,db4,f4]@2 [ab3,db4,f4]@2 [ab3,db4,f4] ~", // Db
  L: "[bb3,db4,f4]@3 [bb3,db4,f4]@3 [bb3,db4,f4]@3 [bb3,db4,f4] [bb3,db4,f4]@2 [bb3,db4,f4]@2 [bb3,db4,f4]@2", // Bbm
  M: "[bb3,db4,f4]@3 [bb3,db4,f4]@3 [bb3,db4,f4]@3 [bb3,db4,f4] [bb3,db4,f4]@2 [bb3,db4,f4]@2 [bb3,db4,f4] ~", // Bbm
  N: "[ab3,c4,eb4]@3 [ab3,c4,eb4]@3 [ab3,c4,eb4]@3 [ab3,c4,eb4] [ab3,c4,eb4]@2 [ab3,c4,eb4]@2 [ab3,c4,eb4]!2", // Ab
  O: "[ab3,db4,f4]@3 [ab3,db4,f4]@3 [ab3,db4,f4]@3 [ab3,db4,f4] [ab3,db4,f4]@2 [ab3,db4,f4]@2 [ab3,db4,f4]@2", // Db
  P: "[bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@2 [bb3,db4,gb4]@2", // Gb
  Q: "[ab3,c4,eb4]@7 ~", // Ab
  R: "[f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4] ~", // Bb
  S: "[f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4] ~", // F
  T: "[g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2", // Gm
  U: "[g3,bb3,eb4]@2 [g3,bb3,eb4] [g3,bb3,eb4]@2 [g3,bb3,eb4]!3 [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2", // Eb F
  V: "[f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2", // Bb
  W: "[g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4]!3 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4] ~", // Gm
  X: "[g3,bb3,eb4]@2 [g3,bb3,eb4] [g3,bb3,eb4]@2 [g3,bb3,eb4] [g3,bb3,eb4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~", // Eb F
  Y: "[f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2", // Bb
  Z: "~@8 c4@3 db4@3 eb4 ~", AA: "~@2 [bb3,d4] [f3,bb3,d4]@12 ~", AB: "~@2 [a3,c4] [f3,a3,c4]@12 ~",
  AC: "~@2 [d3,g3,bb3] [d3,g3,bb3,d4]@12 ~", AD: "~@2 [g3,bb3,f4] [g3,bb3,f4]@13", AE: "~@2 [f3,bb3,d4] [f3,bb3,d4]@13",
  AF: "~@2 [f3,a3,c4] [f3,a3,c4]@13", AG: "~@2 [d3,g3,bb3] [d3,g3,bb3]@13", AH: "[eb3,g3,bb3]@4 [f3,a3,c4]@3 ~, f4@7 ~",
  AI: "[~@16 d4@31 ~, ~@15 [bb2,f3,bb3]@32 ~]/3", // Bb5
})).s("gm_acoustic_guitar_steel").gain(0.05).pan(0.8)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  ~@2 A B@2 ~@21 A C D@2 A E@3 ~@16 A C D@2 A E@3 ~@23 A C D@2 A E@3 A C D@2 A E@3 ~@7
>`.pickRestart({
  A: "~@8 bb2@3 c3@3 d3@2", B: "[~@8 f2@15 ~@9, c3@23 ~@9]/2", C: "c3 f2", D: "[f3@19 ~@13]/2", E: "[c3@2 f2@7 ~@3]/3",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@6 A B@2 C A B@2 D A B@2 D A B@2 D A B@2 C A B@2 D A B@2 D A B@2 D A B@2 D A B@2 D A B@2 C A B@2 D A B@2 D A B@2 D C
  ~@12 E@2 F@2 G C A B@2 D A B@2 D A B@2 D A B@2 D A B@2 D C ~@2
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~@2 x!2 ~ x ~@3", B: "x ~@2 x ~@2 x ~@2 x!4 ~@3", C: "x", D: "x ~@2 x ~@2 x ~@2 x!4 ~ x ~",
  E: "x!2", F: "x ~@2 x!2 ~@3", G: "x ~@5 x ~ x ~ x!2 ~@2 x ~",
})).gain(0.24).pan(0.6)

// drums · rim
const rim = s("rim").struct("<~@25 [~@3 x] ~@23 [~@3 x] ~@54>").gain(0.24).pan(0.6)

// drums · snare
const snare = s("sd").struct("<~@6 A@3 B A@15 B A@23 B A@12 ~@15 A@3 ~ A@20 ~@3>".pickRestart({
  A: "~ x ~ x", B: "~@3 x",
})).gain(0.28).pan(0.6)

// drums · clap
const clap = s("cp").struct("<~@25 [~@3 x] ~@23 [~@3 x] ~@25 [~ x ~ x]!5 x ~@23>").gain(0.28).pan(0.6)

// drums · low tom
const low_tom = s("lt").struct("<~@17 [~@7 x] ~@23 [~@7 x] ~@30 [~@11 x!2 ~ x ~] ~@31>").gain(0.24).pan(0.6)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~@5 B C D ~ B C D C B C D C B C D C B C D ~ B C D C B C D C B C D C B C D C B C D C B C D ~ B C D C B C D C B C D C
// … 43 more lines

More by Backstreet Boys