Strudelify

Larger Than Life

Backstreet Boys

KeyC minorTempo116 bpm
0:00/0:00
// Larger Than Life — Backstreet Boys
// 116 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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 · synth bass 1
const bass = note(`<
  ~ A B A B A C ~@4 A D ~@2 A D ~@4 A C A C A C ~@2 A C ~@2 A D ~@2 A D ~@4 A C A C A C ~@2 A C ~@11 A C A C A C ~@10 A
  C A C A C ~@2 A C A C A C ~@8
>`.pickRestart({
  A: "c3@3 ~ c3@3 ~ eb3 ~ c3@3 ~@3", B: "bb2 ~ c3 ~ eb3 ~ c3@3 ~ c3 ~ c4 ~ c3 ~", C: "bb2 ~ c3 ~ eb3 ~ c3@5 ~@5",
  D: "bb2 ~ c3 ~ eb3 ~ c3@3 ~@7",
})).s("gm_synth_bass_1").gain(0.41)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@5 A B C D ~@8 C D C ~ A B A B A B C D A B ~@8 C D C ~ A B A B A B C D A B C D ~@9 A B A B A B C D E ~@5 C D A B A B
  A B C D A B A B A B C D C D C D F ~
>`.pickRestart({
  A: "c3@3 ~ c3@3 ~ eb3 ~ c3@3 ~@3", B: "bb2 ~ c3 ~ eb3 ~ c3@5 ~@5", C: "d4@5 ~ c4@5 ~ eb4@3 ~",
  D: "d4@5 ~ c4@5 ~ bb3@3 ~", E: "c4@3 ~@13", F: "c4",
})).s("gm_overdriven_guitar").gain(0.41)

// bass · electric bass finger · "Electric Finger Bass"
const bass_2 = note(`<
  ~ A B A B C D E F ~ D C D C D C D E F E G C D C D C D E F ~@2 C D C D C D C D E F E G C D C D C D E F C D E F H I J K
  L M L N@2 C D C D C D E F O ~@5 E F C D C D C D E F C D C D C D E F E F E F H ~
>`.pickRestart({
  A: "c2@3 ~ c2@3 ~ eb2 ~ c2@3 ~@3", B: "bb1 ~ c2 ~ eb2 ~ c2@3 ~ c2 ~ c3 ~ c2 ~", C: "c2@3 ~ c2@3 ~ eb2 ~ c2@3 ~ c2 ~",
  D: "bb1@3 ~ bb1 ~ eb1 ~ f1 ~ f1@3 ~ g1 ~", E: "ab1@3 ~ ab1 ~ eb1 ~ ab1 ~ ab1@3 ~ ab1 ~",
  F: "bb1@3 ~ bb1 ~ f1 ~ bb1 ~ bb1@3 ~ bb1 ~", G: "bb1@3 ~@13", H: "c2", I: "b1", J: "ab1", K: "g1!2",
  L: "d2@5 ~ c2@5 ~ eb2@3 ~", M: "d2@5 ~ c2@5 ~ bb1@3 ~", N: "d2/2", O: "c2@3 ~@13",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · pad new age · "Fantasia"
const pad_new_age = note(`<
  ~@5 A B C D ~@8 C D C ~ A B A B A B C D ~@10 C D C ~ A B A B A B C D A B C D E F G H C D C I@2 A B A B A B C D J ~@5 C
  D A B A B A B C D A B A B A B C D C D C D A ~
>`.pickRestart({
  A: "[eb4,g4,c5]", B: "[d4,f4,bb4]@5 ~ [c4,f4,a4]@8 ~@2", C: "[f4,bb4,d5]@5 ~ [eb4,ab4,c5]@5 ~ [g4,bb4,eb5]@3 ~",
  D: "[f4,bb4,d5]@5 ~ [eb4,g4,c5]@5 ~ [d4,f4,bb4]@3 ~", E: "[eb4,c5], g4@11 ~@5", F: "[d4,g4,b4]",
  G: "[eb4,c5]@11 ~@5, ab4", H: "[eb4,g4,c5] [d4,g4,b4]", I: "[f4,bb4,d5]/2", J: "[eb4,g4,c5]@3 ~@13",
})).s("gm_pad_new_age").gain(0.41)

// drums · kick
const kick = s("bd").struct("<~@5 A@4 B A@10 ~ A@21 ~ A@12 ~@8 C A@8 D E A@26 ~@2>".pickRestart({
  A: "x ~@3 x ~ x ~ x ~ x!3 ~@3", B: "~@5 x ~@2", C: "~@5 x!2 ~", D: "x", E: "x ~ x ~ x!3 ~",
})).gain(0.41)

// drums · snare
const snare = s("sd").struct("<~@4 A B@4 C B@10 ~ B@21 ~ B@12 ~@8 C B@8 D C B@26 ~@2>".pickRestart({
  A: "~@8 x ~ x ~ x!4", B: "~ x ~ x", C: "~@3 x", D: "x",
})).gain(0.41)

// drums · hihat
const hihat = s("hh").struct("<A ~@2 A B C@4 ~ C@10 A C@21 A C@12 ~@9 C@8 ~@2 C@26 ~@2>".pickRestart({
  A: "x!4", B: "x!3 ~", C: "x!8",
})).gain(0.41)

// drums · open hat
const open_hat = s("oh").struct("<~@2 [~@14 x!2] [x!4]!2 ~@97>").gain(0.41)

// drums · crash
const crash = s("cr").struct(`<
  ~@5 A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 B A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3
>`.pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.41)

// drums · cowbell
const cowbell = s("cb").struct("<~@3 A@2 B@4 ~ B@10 A B@21 A B@12 ~@9 B@8 ~@2 B@26 ~@2>".pickRestart({
  A: "x!4", B: "x ~@3 x ~@3 x ~ x!3 ~ x ~",
})).gain(0.41)

stack(bass, overdriven_guitar, bass_2, pad_new_age, kick, snare, hihat, open_hat, crash, cowbell)

More by Backstreet Boys