Strudelify
Quit Playin' Games cover art

1996 · Backstreet Boys

Quit Playin' Games

Backstreet Boys

KeyA majorTempo102 bpm
0:00/0:00
// Quit Playin' Games — Backstreet Boys
// 102 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 97 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(102/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.

// other · acoustic guitar steel · "Guitar I"
const acoustic_guitar_steel = note(`<
  A B C D@2 B C E@2 ~@55 A B C D@2 B C F@2 ~@7 A B C D@2 B C D@2 B C D@2 B C G@2
>`.pickRestart({
  A: "~@3 e3", B: "e4@6 c#4@8 d4 c#4, d4 ~@15", C: "d4@6 a3@8 d4 c#4", D: "[d4@3 a3@2 b3@2 a3@7 e3@2]/2",
  E: "[d4@6 a3@4 b3@4 a3@13 ~@5]/2", F: "[d4@3 a3@2 b3@2 a3@7 ~@2]/2", G: "[d4@3 a3@2 b3@2 a3@9]/2",
})).s("gm_acoustic_guitar_steel").gain(0.5)

// bass · electric bass pick · "Bass"
const bass = note(`<
  ~ A B C A@2 B C D A B C A@2 B C A@2 B C A@2 B C E A B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C E A B C F G C@2 G H I
  J K H I J ~ A B C A@2 B C A ~@2 L M N L O P A B C F G C@2 A@2 B C A@2 B C M
>`.pickRestart({
  A: "a1@2 a1@2 ~@2 a1@2 a1@2 a1@2 ~@2 a1 ~", B: "b1@2 b1@2 ~@2 b1@2 b1@2 b1@2 ~@2 b1 ~",
  C: "g1@2 g1@2 ~@2 g1@2 g1@2 g1@2 ~@2 g1 ~", D: "a1 ~@7", E: "g1 ~@7", F: "a1@2 a1@2 ~@2 a1@2 g#1@2 g#1@2 ~@2 g#1 ~",
  G: "f#1@2 f#1@2 ~@2 f#1@2 f#1@2 f#1@2 ~@2 f#1 ~", H: "b1@2 ~ b1@2 ~@2 b1", I: "a1@4 ~@2 a1@3 ~ a1 ~@3 a1 ~",
  J: "g1@4 ~@2 g1@3 ~@7", K: "g1@4 ~@2 g1 ~ a1@5 ~@3", L: "g1", M: "a1", N: "f#1", O: "g1@3 ~",
  P: "~@9 e1 f#1 b1 e2 b1 f#1 e1",
})).s("gm_electric_bass_pick").gain(0.5)

// chords · synth strings 1 · "Synth Strings"
const synth_strings_1 = note(`<
  ~ A B C A@2 B C A ~@8 A B C A@2 B C ~ A B C A@2 B C A ~@8 A B C A@2 B C ~ A B C D E C@2 F G H I J G H I ~ A B C A@2 B
  C A ~@4 K@3 ~ A B C D E C@2 A@2 B C A L B C A
>`.pickRestart({
  A: "[e3,a3,c#4]", B: "[f#3,b3,d4]", C: "[g3,b3,d4]", D: "[e3,a3,c#4] [e3,g#3,b3]", E: "[f#3,a3], c#4@11 ~@5",
  F: "[f#3,a#3,c#4]", G: "[b3,d4,f#4]", H: "[a3,d4,f#4]", I: "[g3,d4,f#4]", J: "~ [a3,c#4,e4]", K: "a4/3",
  L: "[e3,a3], c#4@11 ~@5", // A5
})).s("gm_synth_strings_1").gain(0.4)

// other · epiano1 · "Elec Piano"
const epiano1 = note(`<
  ~@9 A B C A@2 B C A@2 B C A@2 B C ~ A B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C ~ A B C D E C F G ~@7 H ~@8 I J K L
  M N O ~ A B C D E C@2 A@2 B C A@2 B C A
>`.pickRestart({
  A: "a3", B: "b3", C: "g3", D: "a3 g#3", E: "f#3", F: "~ [g5,b5,d6]@3, g3", G: "[c#5,f#5,b5] [c#5,f#5,a#5], f#3",
  H: "~ a4 d5@2 c#5 a4 e4 a4, ~@4 c#5 ~@11", I: "[e3,a3,c#4]", J: "[f#3,b3,d4]", K: "[g3,b3,d4]", L: "[e3,a3,c#4,e4]",
  M: "[f#3,a3,c#4,f#4]", N: "[g3,a3,b3,d4]", O: "[g3,a3,b3,d4]@3 ~",
})).s("gm_epiano1").gain(0.4)

// chords · electric guitar clean · "Guitar II"
const electric_guitar_clean = note(`<
  ~@25 A B C A@2 B C A D E F D G E F G A B C A@2 B C ~ A B C A H I@2 J K L M N O P Q ~ A B C A@2 B C A ~@8 A B C A H I C
  A@2 B C A@2 B C R
>`.pickRestart({
  A: "[e3,a3,b3]!2 ~ [e3,a3,b3]!3 ~ [e3,a3,b3]", B: "[d3,f#3,b3]!2 ~ [d3,f#3,b3]!3 ~ [d3,f#3,b3]",
  C: "[d3,g3,b3]!2 ~ [d3,g3,b3]!3 ~ [d3,g3,b3]", D: "[e3,a3,b3]", E: "[d3,f#3,b3]", F: "[d3,g3,b3]", G: "[e3,a3,e4]",
  H: "[f#3,a3,c#4]!2 ~ [f#3,a3,c#4]!3 ~ [f#3,a3,c#4]", I: "[g3,b3,d4]!2 ~ [g3,b3,d4]!3 ~ [g3,b3,d4]",
  J: "[f#3,a#3,c#4]!2 ~ [f#3,a#3,c#4]!3 ~ [f#3,a#3,c#4]", K: "[d3,f#3,b3]@2 ~ [d3,f#3,b3]@2 ~@3",
  L: "[f#3,a3,d4] ~@3 [f#3,a3,d4] ~ [f#3,a3,d4]@3 ~ [f#3,a3,d4] ~@5", // D
  M: "[g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,d4,f#4]@3 ~ [g3,b3,d4]@2 ~@4", // G Gmaj7 G
  N: "[g3,b3,d4]@4 ~@2 [g3,b3,d4] ~ [a3,c#4,e4]@4 [a3,c#4,e4] ~@3", O: "[d3,f#3,b3]@4 [d3,f#3,b3] ~ [d3,f#3,b3]@4 ~@6",
  P: "[d3,f#3,b3]@4 ~@2 [d3,f#3,b3]@4 [d3,f#3,b3] ~@5", // Bm
  Q: "[g3,b3,d4]@3 ~ [g3,b3,d4] ~ [g3,b3,d4]@2 ~@2 [g3,b3,d4]@3 ~@3", R: "[e3,a3,c#4]",
})).s("gm_electric_guitar_clean").gain(0.3)

// other · piano · "Piano Background"
const piano = note(`<
  ~@25 A@2 B C D@2 E F@2 ~@15 A@2 B C A@2 G H ~@15 I J@3 K L@3 ~ A@2 B C D@2 E M A@2 B C D@2 N O
>`.pickRestart({
  A: "[[a4,a5]@5 [e4,e5] [a4,a5] [b4,b5]@2 [d5,d6]@4 [d5,d6]@3]/2", B: "[a4,a5]@3 [e4,e5]@3 [b4,b5]@2",
  C: "[a4,a5]@3 [a4,a5]@3 [b4,b5]@2", D: "[[a4,a5]@4 ~ [e4,e5] [a4,a5] [b4,b5]@2 [d5,d6]@4 [d5,d6]@3]/2",
  E: "~ [a4,a5]@3 ~ [e4,e5]@3", F: "[[a4,a5]@8 a5@3 b5@3 a5@4 ~@14]/2", G: "[g1,g2,d5,d6]", H: "[f#1,f#2]!2",
  I: "~@10 d5 c#5 e4@2 e4 c#5", J: "[c#5@3 ~@3 a3 b3@2 d4@4 ~ a3 ~@2 d4@4 ~ e4@2, ~@30 b3@4 ~@10 d4 ~@3, ~@2 g2]/3",
  K: "[a3,c#4] [b3,d4], a2", L: "[[f#3,a3,c#4]@6 a3 ~@2 d4@4 e3 a3 ~ [g1,g2]@6 ~@2, f#2 g2 ~, ~@7 b3@2 ~@6 b3@2 ~@7]/3",
  M: "[a4,a5]@8 a5@3 b5@5", N: "~ a5@4 [e4,e5]@3, [g1,g2], ~ a4@3 ~@4", O: "[a1,a2,a4,a5]",
})).s("gm_piano").gain(0.25)

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

// drums · clap
const clap = s("cp").struct("<~ A@7 B A@15 B A@23 B A@15 ~ A@14 C ~ A@15 ~>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<~ A@7 ~ A@15 B A@23 B A@15 ~ A@8 ~@8 A@15 ~>".pickRestart({
  A: "x!3 ~ x ~ x ~ x ~@3 x ~ x ~", B: "x!4",
})).gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct("<~@8 A ~@15 A ~@23 A ~@15 A ~@14 B ~@16 A>".pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.5)

// drums · open hat
const open_hat = s("oh").struct("<~ [~@5 x ~@2]!63 ~ [~@5 x ~@2]!8 ~@8 [~@5 x ~@2]!15 ~>").gain(0.5)

// drums · tambourine
const tambourine = s("tb").struct("<~@73 x!4 [x!2 ~ x!2 ~ x ~ x ~ x ~ x ~ x ~]!2 [x!2 ~ x!2 ~ x ~ x ~ x ~@5] ~@17>")
  .gain(0.5)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@6 A ~@15 A@2 ~@3 A ~@3 A ~@7 A ~@3 A ~@2 A@2 ~@2 B A ~ A B A ~@3 A@5 ~@3 A ~@9 C ~ A ~@2 B A ~@3 A ~@2 B A ~@2 A
>`.pickRestart({
  A: "x", B: "x!2", C: "~@3 x",
})).gain(0.5)

stack(
  acoustic_guitar_steel, bass, synth_strings_1, epiano1, electric_guitar_clean, piano, kick, clap, hihat, mid_tom,
  open_hat, tambourine, crash
)

More by Backstreet Boys