Strudelify

Bills Bills Bills

Destiny's Child

KeyB majorTempo125 bpm
0:00/0:00
// Bills Bills Bills — Destiny's Child
// 125 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A B A C D E D F A B A C D E D F A B A C D E D F A B A C D E D F ~@4 G H I J A B A C D E D F A B A C D E D F A B A C
  D E D F ~@4 G H I J ~@4 G H I J ~@20 G H I J ~@4 G H I J ~@4 G H I J ~@8
>`.pickRestart({
  A: "b3@3 ~@3 b3 d4 f#4@3 ~@3 b3@2", B: "[f#3,a#3,c#4] ~@7",
  C: "[f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]@2 ~@8", D: "e3@3 ~@3 g3 b3 d4@3 ~@3 e3@2",
  E: "[a#3,c#4,f#4] ~@7", F: "[a#3,c#4,f#4]@2 ~@4 f#4 g4 f#4@2 e4@2 d4@2 c#4@2", G: "g4 ~ d4 ~ g3 ~ d4 ~", H: "g4 ~@7",
  I: "f#4 ~ c#4 ~ f#3 ~ c#4 ~", J: "f#4@2 ~@4 f#4 g4 f#4@2 e4@2 d4@2 c#4@2",
})).s("gm_electric_guitar_clean").gain(0.18)

// bass · electric bass finger
const bass = note(`<
  ~ A B A C D B D E A B A C D B D E F G H I D B D E F G H I D B D E J K L M N O P E F G H I D B D E F G H I D B D E F G
  H I D B D E J K L M N O P E J K L M N O P E F I F I F I F I F I F I F I F I J K L M N O P E J K L M N O P E J K L M N
  O P E ~@8
>`.pickRestart({
  A: "b2@3 ~@11 b2@2", B: "f#2 ~@7", C: "f#2@2 ~ f#2@2 ~ f#2@2 ~@8", D: "e2@3 ~@11 e2@2",
  E: "f#2@2 ~@4 f#2 g2 f#2@2 e2@2 d2@2 c#2@2", F: "b1@3 ~@13", G: "f#1 ~@7", H: "b1@3 ~@7 b1!2 b1@2 b1@2",
  I: "f#1@2 ~ f#1@2 ~ f#1@2 ~@8", J: "b1@15 ~", K: "a#1@15 ~", L: "a1@15 ~", M: "g#1@15 ~", N: "g2 ~ d2 ~ g1 ~ d2 ~",
  O: "g2 ~@7", P: "f#2 ~ c#2 ~ f#1 ~ c#2 ~",
})).s("gm_electric_bass_finger").gain(0.17)

// chords · tenor sax
const tenor_sax = note(`<
  ~@17 A B A ~ C ~ C ~ A D E F G ~ G ~ H I@2 J K L M N A B A ~ C ~ C ~ A B A ~ C ~ C ~ A D E F G ~ G ~ H I@2 J K L M N H
  I@2 J K L M N A D A D A D A D A D A D A D A D H I@2 J K L M N H I@2 J K L M N H I@2 J K L M N H I@2 J K L M N
>`.pickRestart({
  A: "~@3 [b3,d4,f#4]@5", B: "~@8 [d4,f#4,b4]@7 ~", C: "~@3 [g3,b3,d4]@5", D: "c#4 f#3 c#4 f#3 c#4 f#3 c#4 f#3",
  E: "~@6 [b3,d4,f#4]@7 ~ f#3@2", F: "c#4@2 f#3@2 c#4@3 ~ c#4@2 f#3@2 c#4@2 f#3@2",
  G: "~@2 e3@2 b3@2 e3@2 [g3,b3,d4]@7 ~", H: "[d4,f#4]@2 [b3,d4]@2 [d4,f#4]@2 [b3,d4]@2 [d4,f#4]@5 ~ [d4,f#4]@2",
  I: "[c#4,e4]@2 [c#4,e4] [c#4,e4]@2 [c#4,e4] [c#4,e4]@2 [c#4,e4]@5 ~ [c#4,e4]@2", // C#m
  J: "[b3,e4]@2 [b3,e4] [b3,e4]@2 [b3,e4] [b3,e4]@2 [b3,e4]@5 ~ [b3,e4]@2", K: "g4 ~ d4 ~ g3 ~ d4 ~",
  L: "g4@2 ~@6 [d4,f#4,b4]@7 ~", M: "f#4 ~ c#4 ~ f#3 ~ c#4 ~", N: "f#4 ~@7",
})).s("gm_tenor_sax").gain(0.22)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@33 A B C D E F G H ~@24 A B C D E F G H A B C D E F G H ~@16 A B C D E F G H A B C D E F G H A B C D E F G H ~@8
>`.pickRestart({
  A: "[b4,d5,f#5]", B: "[a#4,c#5,e5]@3 [b4,d5,f#5]", C: "[a4,c#5,a5]", D: "[b4,e5,g#5]", E: "g5 ~ d5 ~ g4 ~ d5 ~",
  F: "g5 ~@7", G: "f#5 ~ c#5 ~ f#4 ~ c#5 ~", H: "f#5 ~@7",
})).s("gm_string_ensemble_1").gain(0.18)

// drums · kick
const kick = s("bd").struct(`<
  ~@17 A@3 B A@3 B A@3 B A@3 B A B A B C A C D A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A B A B C A C D A B A B C A C D ~@7 E
  A@9 B A B C A C D A B A B C A C D A B A B C A C D ~@8
>`.pickRestart({
  A: "x", B: "x ~@2 x ~@2 x ~@9", C: "x!4", D: "x ~@9 x ~@2 x ~@2", E: "~@10 x ~@2 x ~@2",
})).gain(0.55)

// drums · rim
const rim = s("rim").struct(`<
  ~@13 A@3 B A ~ C D A ~ C B A ~ C D A ~ C B A E C B ~@3 B A ~ C D A ~ C B A ~ C D A ~ C B A ~ C D A ~ C B A E C B ~@3 B
  A E C B ~@3 B ~@7 B A@9 E C B ~@3 B A E C B ~@3 B A E C B ~@3 B ~@8
>`.pickRestart({
  A: "~ x", B: "~@8 x ~@2 x ~@2 x ~", C: "~@8 x ~@6 x", D: "~@11 x ~@2 x ~", E: "~@2 x ~@2 x ~@2 x ~@7",
})).gain(0.55)

// drums · snare
const snare = s("sd").struct(`<
  ~@13 A@3 B A ~ C D A ~ C B A ~ C D A ~ C B A E C B ~@3 B A ~ C D A ~ C B A ~ C D A ~ C B A ~ C D A ~ C B A E C B ~@3 B
  A E C B ~@3 B ~@7 B A@9 E C B ~@3 B A E C B ~@3 B A E C B ~@3 B ~@8
>`.pickRestart({
  A: "~ x", B: "~@8 x ~@2 x ~@2 x ~", C: "~@8 x ~@6 x", D: "~@11 x ~@2 x ~", E: "~@2 x ~@2 x ~@2 x ~@7",
})).gain(0.55)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C ~ D B C E F B C ~ D B C E F B C ~ D B@2 E F B C ~ D B@2 E F G H G H ~@3 F B C ~ D B@2 E F B C ~ D B@2 E F B C ~
  D B@2 E F G H G H ~@3 F G H G H ~@3 F B C B C B C B C B C B C B C B C G H G H ~@3 F G H G H ~@3 F G H G H ~@3 F ~@8
>`.pickRestart({
  A: "x!4", B: "~@2 x!4 ~@10", C: "~@2 x!2 ~@12", D: "~@6 x ~@3 x!2 ~ x!2 ~", E: "~@10 x!6", F: "~@2 x!6 ~@2 x!6",
  G: "x!3 ~ x ~ x ~ x ~@5 x ~", H: "x ~@10 x!5",
})).gain(0.55)

// drums · ride
const ride = s("rd").struct(`<
  ~@2 A ~ B ~ A ~@3 A ~ B ~ A ~@3 C ~@3 D ~@3 C ~@3 D ~@7 E ~@3 C ~@3 D ~@3 C ~@3 D ~@3 C ~@3 D ~@7 E ~@7 E ~@3 C ~ C ~
  C ~ C ~ C ~ C ~ C ~ C ~@5 E ~@7 E ~@7 E ~@10
>`.pickRestart({
  A: "~@10 x!2 ~@2 x ~", B: "~@10 x ~@2 x ~@2", C: "~@10 x!5 ~", D: "~ x", E: "~@2 x!2 ~ x!2 ~ x ~@7",
})).gain(0.55)

// drums · ht
const ht = s("ht").struct(`<
  ~@18 A B A C ~ D E ~ A B A C ~ D E ~@9 A B A C ~ D E ~ A B A C ~ D E ~ A B A C ~ D E ~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~@32
>`.pickRestart({
  A: "~@10 x!5 ~", B: "~@10 x!2 ~@2 x ~", C: "~@11 x ~@2 x ~", D: "~@10 x!3 ~@3", E: "~@10 x ~ x!2 ~@2",
})).gain(0.55)

// drums · mt
const mt = s("mt").struct("<~@20 A ~ B ~ A ~@3 A ~ B ~ A ~@11 A ~ B ~ A ~@3 A ~ B ~ A ~@3 A ~ B ~ A ~@64>".pickRestart({
  A: "~@2 x ~@2 x ~@10", B: "~@15 x",
})).gain(0.55)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~@18 A ~@3 B ~@3 A ~@3 B ~@6 C D C ~@2 A ~@3 B ~@3 A ~@3 B ~@3 A ~@3 B ~@6 C D C ~@5 C D C ~@2 A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~@4 C D C ~@5 C D C ~@5 C D C ~@9
>`.pickRestart({
  A: "~@2 x!5 ~@9", B: "~@10 x!5 ~", C: "~@3 x ~@3 x ~@3 x ~@3 x", D: "~@10 x!6",
})).gain(2.79)

stack(electric_guitar_clean, bass, tenor_sax, string_ensemble_1, kick, rim, snare, hihat, ride, ht, mt, cabasa)

More by Destiny's Child