Strudelify
I'll Be Missing You cover art

Music Awards Dance Party 1998

I'll Be Missing You

Puff Daddy

KeyG majorTempo109 bpm
0:00/0:00
// I'll Be Missing You — Puff Daddy
// 109 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 142 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(109/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 · fretless bass · "Bass"
const bass = note(`<
  A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C
  D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F
  A G A B C D E F A G A B C D E F A G A B C D E ~
>`.pickRestart({
  A: "g1@3 ~@11 g1 ~", B: "g1@3 ~@5 b1@4 d1@4", C: "e1@3 ~@11 e1 ~", D: "e1@3 ~@13", E: "c2@3 ~@11 e2@2",
  F: "d2@3 ~@13", G: "g1@3 ~@9 d1@4",
})).s("gm_fretless_bass").gain(0.41)

// chords · electric guitar muted · "Guitar"
const electric_guitar_muted = note(`<
  A@2 B@2 C D E@4 B@2 C D E@4 B@2 C D F@4 B@2 C D G@4 H@2 I J K@2 A@2 B@2 C D E@4 B@2 C D E@4 B@2 C D G@4 H@2 I J K@2
  A@2 B@2 C D E@4 B@2 C D E@4 B@2 C D E@4 B@2 C D E@4 B@2 C D E@4 B@2 C D E@4 B@2 C D E@4 B@2 C D E@4 B@2 C ~
>`.pickRestart({
  A: "[~ d3 g2 ~@5 g2 [g2,d3] g2 ~@4 a3, g2@4 a3@6 a3@4 a3@6 a3@5 ~ a3@4 ~@2, ~@6 d3@5 ~ d3@6 ~@4 d3@5 ~ d3@4, ~@8 [g2,b3]@9 ~@7 [g2,b3]@8]/2", // G5 G
  B: "[e2 [e2,b2] ~ b2 ~ f#3 ~ f#3 ~@2 e2 ~ e2 f#3 ~ f#3, ~ [e2,f#3] g3@4 g3@2, ~@4 e2@4 e2@2 f#3@3 ~@3, ~@12 b2@6 b2@4 b2@5 ~ b2@4]/2", // E5 Esus2
  C: "c3 ~ c3 ~ c3@2 ~@6 c3@2 g3@2, ~ g3@2 g3@2 g3@2 ~, ~ d4@2 ~, ~@8 c4@7 ~, ~@2 c3 ~",
  D: "d3@2 [d3,a3]@2 d3 ~@5 a3@2 ~@2 a3@2, ~@4 e4@7 ~@5, ~@3 a3@2 ~@3, ~@8 d4@7 ~, ~@2 d3!2", // D5
  E: "[[g2,d3]!2 g2 ~@2 a3 ~@3 d3 g2 ~@6 d3 g2 ~@5 g2 [g2,d3] g2 ~@4 a3, ~@4 a3@4 [g2,b3]@8 g2@4 ~@4 [g2,b3]@8 g2@4 ~@4 [g2,b3]@9 ~@7 [g2,b3]@8, ~@6 d3@5 ~ d3@5 ~@5 d3@5 ~ d3@6 ~@4 d3@5 ~ d3@6 ~@4 d3@5 ~ d3@4, ~@14 a3@6 a3@6 a3@4 a3@6 a3@6 a3@4 a3@6 a3@5 ~ a3@4 ~@2]/4", // G5 G
  F: "[[g2,d3]@2 [g2,d3]@2 g2@2 ~@4 a3@2 ~@4 g2 ~ d3@2 g2@2 ~@4 a3@2 ~@6 d3@2 g2@2 ~@10 g2@2 [g2,d3]@2 g2@2 ~@8 a3@2, ~@4 a3@4 [g2,b3]@8 ~@2 g2 ~@5 [g2,b3]@8 g2@4 ~@4 [g2,b3]@9 ~@7 [g2,b3]@8, ~@6 d3@5 ~ d3@5 ~@5 d3@5 ~ d3@5 ~@5 d3@5 ~ d3@6 ~@4 d3@5 ~ d3@4, ~@14 a3@6 a3@5 ~@5 a3@6 a3@6 a3@4 a3@6 a3@5 ~ a3@4 ~@2]/4", // G5 G
  G: "[[g2,d3]@2 [g2,d3]@2 g2@2 ~@4 a3@2 ~@4 g2 ~ d3@2 g2@2 ~@4 a3@2 ~@4 g2 ~ g2 ~ g2@2 ~@4 a3@2 ~@4 g2 ~ g2@2 g2@2 ~@4 a3@2 ~@2 a3@2, ~@4 a3@4 [g2,b3]@8 ~@2 g2 ~@5 [g2,b3]@8 ~@8 [g2,b3]@8 ~@8 [g2,b3]@8, ~@6 d3@5 ~ d3@5 ~@5 d3@5 ~ d3@5 ~ d3@4 d3@5 ~ d3@5 ~ d3@4 d3@5 ~ d3@4, ~@14 a3@6 a3@5 ~@5 a3@6 a3@5 ~@5 a3@5 ~ a3@5 ~@7]/4", // G5 G
  H: "[e2 ~ [e2,b2]@2 ~@6 f#3@2 ~@4 e2 ~ [e2,b2]@2 ~@6 f#3@2 b2@2 f#3@2, ~@4 f#3@6 ~@4 f#3@5 ~ f#3@6 ~@6, ~ e2 [e2,g3]@2 ~ e2 [e2,g3]@2, ~@6 b2@5 ~ b2@5 ~@5 b2@5 ~@5]/2", // E5 Em
  I: "c3 ~ g3@2 ~@6 g3@2 c3@2 g3@2, ~@2 c3 ~ [c3,d4]@4 c4@7 ~, ~@3 g3@2 ~@3, ~@2 c3 ~", // Csus2
  J: "d3 ~ a3@2 ~@8 d3@2 a3@2, ~ d3@3 [d3,d4]@2 ~@2, ~@4 e4@9 ~@3, ~@3 a3@2 a3@2 ~", // D
  K: "[g2 ~ [g2,d3]@2 ~@6 a3@2 ~@2 a3@2 g2 ~ d3@2 ~@4 b3@2 ~@4 a3@2, ~@4 a3@6 ~@14 g2@7 ~, ~@4 g2@4 [g2,b3]@8 ~@2 g2 ~ [g2,a3]@5 ~ a3@4 ~@2, ~@6 d3@5 ~ d3@6 ~@4 d3@5 ~ d3@4]/2", // G5 G Gsus2
})).s("gm_electric_guitar_muted").gain(0.56)

// other · synth strings 1 · "Synth Str"
const synth_strings_1 = note(`<
  ~@71 A B@3 C D@3 A B@3 C D@3 A B@3 C D@3 A B@3 C D@3 A B@3 C D@3 A B@3 C D@3 A B@3 C D@3 A B@3 C D@3 A B@3 C E@2
>`.pickRestart({
  A: "g4 a4 b4 e5", B: "[d5@14 g5 f#5@5 d5@4]/3", C: "g4", D: "[b4@14 e5 d5@9]/3", E: "[b4@7 ~]/2",
})).s("gm_synth_strings_1").gain(0.36)

// chords · pan flute · "PANFLUIT" · G
const pan_flute = note(`<
  ~@79
  [~@2 [g4,b4]@2 [g4,b4]@2 [g4,b4]@4 [g4,b4]@3 ~ [g4,b4]@2]!15
  [~ [g4,b4] ~ g4@2 ~@3]
  ~@47
>`).s("gm_pan_flute").gain(0.31)

// chords · pan flute · "PANFLUIT" · soft notes · G
const pan_flute_soft = note(`<
  ~@94
  [~@4 [g4,b4]@2 b4@4 [g4,b4]@3 ~ [g4,b4]@2]
  [~@2 [g4,b4]@2 [g4,b4]@2 [g4,b4]@4 [g4,b4]@3 ~ [g4,b4]@2]
  ~@46
>`).s("gm_pan_flute").gain(0.15)

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

// drums · snare
const snare = s("sd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A ~
>`.pickRestart({
  A: "~@4 x ~@2 x ~@4 x ~@3", B: "~ x ~ x",
})).gain(0.51)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A
  C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B
  A B A B A C A B A B A B A C A B A B A B A C A ~
>`.pickRestart({
  A: "~@2 x!5 ~", B: "~@3 x!2 ~@3", C: "~@3 x!4 ~",
})).gain(0.51)

// drums · open hat
const open_hat = s("oh").struct(`<
  A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A
  B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3 B A B A B A@3
  B A B A B A ~
>`.pickRestart({
  A: "x ~@6 x", B: "x",
})).gain(0.31)

stack(bass, electric_guitar_muted, synth_strings_1, pan_flute, pan_flute_soft, kick, snare, pedal_hat, open_hat)

More by Puff Daddy