Strudelify
Get Down cover art

1996 · Backstreet Boys

Get Down

Backstreet Boys

KeyB♭ majorTempo115 bpm
0:00/0:00
// Get Down — Backstreet Boys
// 115 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 11 "Baritone Sax" baritone sax (copy of ch 8 "Distortion Guitar" distortion guitar)
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Guitar harmonics.
setcpm(115/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 · string ensemble 2
const string_ensemble_2 = note(`<
  A B A B A B A B A B A B ~@8 C D C D C D C E A B A B A B A B A B A B A B A B C D C D C D C E A B A B A B A B A B A B A
  B A B ~@8 A F@2 B A F@2 B A F@2 B A G@2 B A G@2 B A G@2 ~
>`.pickRestart({
  A: "[gb5,gb6]", B: "[f5,f6]", C: "[a3,gb4,d5]", D: "[db4,a4,gb5] [b3,ab4,e5]", E: "[b3,ab4,e5]@3 [db4,a4,gb5]",
  F: "[[f5,f6]@15 ~ gb6@16, ~@15 gb5@16 ~]/2", G: "[[f5,f6]@15 [gb5,gb6]@16 ~]/2",
})).s("gm_string_ensemble_2").gain(0.13).pan(0.3)

// bass · synth bass 2
const bass = note("<~@12 A B C D A B C D E F G H I J K L ~@16 E F G H I J K M ~@48>".pickRestart({
  A: "gb0@4 ~@2 db1@5 ~ db0@4", B: "a0@2 ~ a1@3 e0@2", C: "a0@3 ~@3 db1@2 d1@4 d0@4", D: "gb1@3 ~@3 e1@5 b0 e1 b0 e0@2",
  E: "d1 ~ d0 ~ d1 ~@3", F: "gb1@2 gb1@2 gb0@2 b0@2 e1@2 ~@3 b0 e1 b0", G: "d1@2 ~@2 d0@2 ~ a0 d0 ~ d0@2 ~@4",
  H: "gb0 ~ gb0@2 b0@2 gb1@2 e1 ~ e1 b0 ~ b0 e1 b0", I: "d1@2 ~@2 d1@2 ~ a0 d0@2 ~@5 a0",
  J: "gb0 ~ gb0@2 db1@2 gb0 db1 e1 ~ e0@3 b0 e1 b0", K: "d1@2 ~@2 d0@2 ~ a0 d1@2 ~@3 a0 d1 eb1",
  L: "e1 ~ e0 ~ e0 ~ gb0 ~", M: "e1 ~ e0 ~ e0 ~ f0 ~",
})).s("gm_synth_bass_2").gain(0.52)

// bass · synth bass 1
const bass_2 = note("<~@12 A B C D A B C D E F G H I J K L ~@16 E F G H I J K M ~@48>".pickRestart({
  A: "gb1@4 ~@2 db2@5 ~ db1@4", B: "a1@2 ~ a2@3 e1@2", C: "a1@3 ~@3 db2@2 d2@4 d1@4", D: "gb2@3 ~@3 e2@5 b1 e2 b1 e1@2",
  E: "d2 ~ d1 ~ d2 ~@3", F: "gb2@2 gb2@2 gb1@2 b1@2 e2@2 ~@3 b1 e2 b1", G: "d2@2 ~@2 d1@2 ~ a1 d1 ~ d1@2 ~@4",
  H: "gb1 ~ gb1@2 b1@2 gb2@2 e2 ~ e2 b1 ~ b1 e2 b1", I: "d2@2 ~@2 d2@2 ~ a1 d1@2 ~@5 a1",
  J: "gb1 ~ gb1@2 db2@2 gb1 db2 e2 ~ e1@3 b1 e2 b1", K: "d2@2 ~@2 d1@2 ~ a1 d2@2 ~@3 a1 d2 eb2",
  L: "e2 ~ e1 ~ e1 ~ gb1 ~", M: "e2 ~ e1 ~ e1 ~ f1 ~",
})).s("gm_synth_bass_1").gain(0.6)

// other · lead 2 sawtooth · "Lead 2 (sawtooth)"
const lead_2_sawtooth = note(`<
  ~@4 A B C D A B C D ~@16 A B C D A B C D A B C D A B C D ~@8 A B C D A B C D A B C D A B C D ~@8 A B C D A B C D A B C
  D A B C D A B C D A B C ~
>`.pickRestart({
  A: "gb4@2 db4 ~@3 db4@2 d4@2 db4 ~@3 db4@2", B: "f4@2 db4 ~@3 d4@4 db4@2 c4@2 db4@2",
  C: "gb4@2 db4 ~@3 db4@2 d4@2 db4@2 ~@2 db4@2", D: "f4@2 db4@2 gb4@2 ab4 ~ a4@4 ab4@4",
})).s("gm_lead_2_sawtooth").gain(0.19)

// other · piano · "Acoustic Grand Piano"
const piano = note("<~@3 A B ~@22 C B ~@22 A B ~@6 D B ~@14 E B ~@6 F B ~@6 F B ~@7>".pickRestart({
  A: "[e4,e5] ~ [e4,e5] ~ [e4,e5] ~ [f4,f5] ~", B: "[gb4,gb5] ~@3", C: "[e4,e5] ~ [e4,e5] ~ [e4,e5] ~ [gb4,gb5] ~",
  D: "~@6 [f4,f5] ~", E: "[f4,f5] ~ [f4,f5] ~ [f4,f5] ~ [f4,f5] ~", F: "~@2 [e4,e5] ~ [e4,e5] ~ [f4,f5] ~",
})).s("gm_piano").gain(0.41)

// other · piano · "Acoustic Grand Piano" · soft notes · Amaj7 Bmaj7 Dbmaj7 Ebmaj7
const piano_soft = note("<~@91 [[ab3,a3,ab4,a4] [bb3,b3,bb4,b4] [c4,db4,c5,db5] [d4,eb4,d5,eb5] ~@12] ~@8>")
  .s("gm_piano").gain(0.25)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@4 A B C D A B C D ~@16 A B C E A B C E A B C E A B C F ~@8 A B C E A B C E A B C E A B C F ~@8 A B C E A B C E A B C
  F A B C D A B C D A B C ~
>`.pickRestart({
  A: "gb2@3 ~@3 gb2@2 d3@4 db3@4", B: "f3 db3 ~ d3@2 db3 c3 db3", C: "gb3 db3 ~ db3 d3@2 db3@2",
  D: "f3 db3 ~ db3 a3@2 ab3@2", E: "f3 db3 ~ db3 d3@2 db3@2", F: "f3 db3 ~ db3 ~@4",
})).s("gm_distortion_guitar").gain(0.35)

// other · lead 2 sawtooth · "Lead 2 (sawtooth)"
const lead_2_sawtooth_2 = note(`<
  ~@4 A B C D A B C D ~@16 A B C E A B C E A B C E A B C F ~@8 A B C E A B C E A B C E A B C F ~@8 A B C E A B C E A B C
  F A B C D A B C D A B C ~
>`.pickRestart({
  A: "gb0@3 ~@3 gb0@2 d1@4 db1@4", B: "f1 db1 ~ d1@2 db1 c1 db1", C: "gb1 db1 ~ db1 d1@2 db1@2",
  D: "f1 db1 ~ db1 a1@2 ab1@2", E: "f1 db1 ~ db1 d1@2 db1@2", F: "f1 db1 ~ db1 ~@4",
})).s("gm_lead_2_sawtooth").gain(0.32)

// bass · lead 1 square · "Lead 1 (square)"
const bass_3 = note(`<
  ~@3 A B C D E B C D E ~@16 B C D F B C D F B C D F B C D G ~@7 H B C D F B C D F B C D F B C D I ~@7 A B C D F B C D J
  B C D G B C D K B C D E B C D ~
>`.pickRestart({
  A: "~@3 db4", B: "gb1@3 ~@3 gb1@2 d2@4 db2@4", C: "f2 db2 ~ d2@2 db2 c2 db2", D: "gb2 db2 ~ db2 d2@2 db2@2",
  E: "f2 db2 ~ db2 a2@2 ab2@2", F: "f2 db2 ~ db2 d2@2 db2@2", G: "f2 db2 ~ db2 ~@4", H: "~@3 gb3",
  I: "f2 db2 ~ db2 ~@2 db4@2", J: "f2 db2 ~ db2 d2@2 [db2,db4]@2", K: "f2 db2 ~ db2 a2@2 [ab2,db4]@2",
})).s("gm_lead_1_square").gain(0.6)

// chords · pad new age · "Pad 1 (new age)"
const pad_new_age = note(`<
  ~@12 A B@2 C A B@2 C D E D E D E D F ~@16 D E D E D E D F ~@16 G H I@2 G H J@2 ~@24
>`.pickRestart({
  A: "[a3,db4,gb4]", B: "[[a3,db4,e4]@3 [gb3,a3,d4]]/2", C: "[a3,db4,gb4]@3 [ab3,b3,e4]@5", D: "[gb3,d4,a4]",
  E: "[a3,gb4,db5] [ab3,e4,b4]", F: "[ab3,e4,b4]@3 [a3,gb4,db5]", G: "[gb3,a3,d4]", H: "gb4 e4, [ab3,b3]",
  I: "[[a3,db4,gb4]@3 [ab3,b3,e4]]/2", J: "[[a3,gb4] [ab3,f4], db4]/2",
})).s("gm_pad_new_age").gain(0.05).pan(0.7)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@12 A@7 ~ A@7 B ~@14 A C A@7 B ~@14 A C ~@14 A C ~@6 A C ~@6 A ~>".pickRestart({
  A: "~@15 x", B: "~@3 x ~@3 x ~@3 x ~@3 x", C: "~@3 x ~@12",
})).gain(0.24)

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A@15 B A@7 C A@7 D A@3 D A@3 E A@7 C A@7 D A@3 D A@3 D ~@7 F A@3 D A@3 E A@3 D A@3 E A@3 G A@3 ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x!2 ~@2", C: "x!4", D: "~ x!3", E: "~@4 x ~@3 x ~ x ~ x!2 ~@2",
  F: "x ~@3 x ~@3 x ~@2 x!2 ~@3", G: "~@4 x ~@3 x ~@3 x ~@2 x",
})).gain(0.54)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@19 [~@15 x] ~@71 [x!4 ~@12] ~@4 [x!2 ~@14] ~@3>").gain(0.18)

// drums · clap
const clap = s("cp").struct("<~@4 A@35 B A@3 C A@19 B A@3 C ~@8 A@3 B A@3 C A@3 B A@3 C A@3 B A@3 ~>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~ x ~@2",
})).gain(0.42)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@4 A@39 B A@23 B ~@8 A@7 B A@7 B A@4 C A@2 ~>".pickRestart({
  A: "~ x ~ x ~@3 x", B: "~ x ~ x ~@4", C: "~@3 x ~@3 x",
})).gain(0.18)

// drums · low tom
const low_tom = s("lt").struct("<~@43 [~@7 x] ~@39 [~@7 x] ~@7 [~@7 x] ~@8>").gain(0.48)

// drums · open hat
const open_hat = s("oh").struct("<~@4 A@39 ~ A@23 ~@9 A@7 ~ A@7 ~ A@4 B A@2 ~>".pickRestart({
  A: "~@5 x ~@2", B: "~ x ~@3 x ~@2",
})).gain(0.3)

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

// drums · tambourine
const tambourine = s("tb").struct("<~@4 A@39 B A@23 B ~@8 A@7 B A@7 B A@7 ~>".pickRestart({
  A: "x!4", B: "x!3 ~",
})).gain(0.36)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@4 A@39 B A@23 B ~@8 A@7 B A@7 B A@7 ~>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~@4",
})).gain(0.18)

// drums · shaker
const shaker = s("sh").struct("<~@4 A@39 B A@23 C ~@8 A@7 B A@7 B A@7 ~>".pickRestart({
  A: "x!16", B: "x!11 ~@5", C: "x!12 ~@4",
})).gain(0.18)

stack(
  string_ensemble_2, bass, bass_2, lead_2_sawtooth, piano, piano_soft, distortion_guitar, lead_2_sawtooth_2, bass_3,
  pad_new_age, kick, kick_soft, snare, snare_soft, clap, hihat, hihat_soft, low_tom, open_hat, china, tambourine,
  tambourine_soft, shaker
)

More by Backstreet Boys