Strudelify
Big Poppa cover art

1994 · Ready To Die the Remaster

Big Poppa

The Notorious B.I.G.

KeyD minorTempo84 bpm
0:00/0:00
// Big Poppa — The Notorious B.I.G.
// 84 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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.

// chords · percussive organ · "Pad1"
const percussive_organ = note(`<
  A B C B D B D E A B C B D B D E A B C B D B D E A B C B D B D F A B C B D B D E A B C B D B D E A B C B D B D E A B C
  B D B D E A B C B D B D E A B C B D B D F A B C B D B D G ~@5
>`.pickRestart({
  A: "[g4,a4,c5,e5]@6 ~@2 [ab4,b4,d5,f5]@7 ~", // Am7 Abdim
  B: "[g4,b4,c5,e5]@3 [g4,a4,c5,e5] ~@4 [f4,a4,bb4,d5]@2 ~@2 [f4,a4,bb4,d5]@2 ~@2", // Cmaj7 Am7 Bbmaj7
  C: "[g4,a4,c5,e5]@3 ~ [ab4,b4,d5,f5]@3 ~", D: "[f4,a4,d5]@3 ~ [ab4,c5,d5,f5]@3 ~", E: "b4@2 a4 b4@6 ~ c5@3 d5@2 ~",
  F: "~@13 d5@2 ~", G: "b4 ~@7",
})).s("gm_percussive_organ").gain(0.17)

// chords · percussive organ · "Pad1" · soft notes · Am7 Abdim Cmaj7 Am7 Bbmaj7 Am7 Abdim Cmaj7 …
const percussive_organ_soft = note(`<
  ~@87
  [~@2 a4 b4@6 ~ c5@3 d5@2 ~]
  [[g4,a4,c5,e5]@6 ~@2 [ab4,b4,d5,f5]@7 ~]
  [[g4,b4,c5,e5]@3 [g4,a4,c5,e5] ~@4 [f4,a4,bb4,d5]@2 ~@2 [f4,a4,bb4,d5]@2 ~@2]
  [[g4,a4,c5,e5]@3 ~ [ab4,b4,d5,f5]@3 ~]
  [[g4,b4,c5,e5]@3 [g4,a4,c5,e5] ~@4 [f4,a4,bb4,d5]@2 ~@2 [f4,a4,bb4,d5]@2 ~@2]
  ~
>`).s("gm_percussive_organ").gain(0.04)

// chords · acoustic guitar steel · "Pad2"
const acoustic_guitar_steel = note(`<
  A B A B C B C D A B A B C B C D A B A B C B C D A B A B C B C E A B A B C B C D A B A B C B C D A B A B C B C D A B A
  B C B C D A B A B C B C D A B A B C B C E A B A B C B C F ~@5
>`.pickRestart({
  A: "[g3,a3,c4,e4]@3 ~ [ab3,b3,d4,f4]@3 ~", // Am7 Abdim
  B: "[g3,b3,c4,e4]@2 ~ [g3,a3,c4,e4] ~@4 [f3,a3,bb3,d4]@2 ~@2 [f3,a3,bb3,d4]@2 ~@2", // Cmaj7 Am7 Bbmaj7
  C: "[f3,a3,d4]@5 ~@3 [ab3,c4,d4,f4]@6 ~@2", D: "[b3,b4]@2 [a3,a4] [b3,b4]@6 ~ [c4,c5]@3 [d4,d5]@2 ~",
  E: "~@13 [d4,d5]@2 ~", F: "[b3,b4]@2 ~@8 [c4,c5]@3 [d4,d5]@2 ~",
})).s("gm_acoustic_guitar_steel").gain(0.19)

// chords · acoustic guitar steel · "Pad2" · soft notes · A B Am7 Abdim Cmaj7 Am7 Bbmaj7 Am7 …
const acoustic_guitar_steel_2 = note(`<
  ~@87
  [~@2 [a3,a4] [b3,b4]@6 ~@7]
  [[g3,a3,c4,e4]@3 ~ [ab3,b3,d4,f4]@3 ~]
  [[g3,b3,c4,e4]@2 ~ [g3,a3,c4,e4] ~@4 [f3,a3,bb3,d4]@2 ~@2 [f3,a3,bb3,d4]@2 ~@2]
  [[g3,a3,c4,e4]@3 ~ [ab3,b3,d4,f4]@3 ~]
  [[g3,b3,c4,e4]@2 ~ [g3,a3,c4,e4] ~@4 [f3,a3,bb3,d4]@2 ~@2 [f3,a3,bb3,d4]@2 ~@2]
  ~
>`).s("gm_acoustic_guitar_steel").gain(0.05)

// bass · slap bass 2 · "Bass"
const bass = note(`<
  A B A B C B D E A B A B C B D E A B A B C B D E A B A B C B D F A B A B C B D E A B A B C B D E A B A B C B D E A B A
  B C B D E A B A B C B D E A B A B C B D F A B A B C B G ~@6
>`.pickRestart({
  A: "f1@2 ~ f1 ~@2 d1 ~ e1@2 ~@6", B: "a1@2 ~@4 ab1 ~ g1@2 ~@2 c2@2 ~@2", C: "b1 ~@2 b1 ~@2 d1 ~ e1@2 ~@6",
  D: "b1@2 ~ b1 ~@2 d1 ~ e1@2 ~@6", E: "b2@2 a2 b2@7 c3@3 d3@2 ~", F: "~@13 d3@2 ~", G: "b1@2 ~ b1 ~@12",
})).s("gm_slap_bass_2").gain(0.5)

// bass · slap bass 2 · "Bass" · soft notes
const bass_soft = note(`<
  ~@86
  [~@6 d1 ~ e1@2 ~@6]
  [b2@2 a2 b2@7 c3@3 d3@2 ~]
  [f1@2 ~ f1 ~@2 d1 ~ e1@2 ~@6]
  [a1@2 ~@4 ab1 ~ g1@2 ~@2 c2@2 ~@2]
  [f1@2 ~ f1 ~@2 d1 ~ e1@2 ~@6]
  [a1@2 ~@4 ab1 ~ g1@2 ~@2 c2@2 ~@2]
  ~
>`).s("gm_slap_bass_2").gain(0.15)

// other · harpsichord
const harpsichord = note("<~@7 A ~@7 A ~@7 A ~@7 B ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 B ~@13>".pickRestart({
  A: "b4@2 a4 b4@6 ~ c5@3 d5@2 ~", B: "~@13 d5@2 ~",
})).s("gm_harpsichord").gain(0.41)

// other · harpsichord · soft notes
const harpsichord_soft = note("<~@87 [b4@2 a4 b4@6 ~ c5@3 d5@2 ~] ~@5>").s("gm_harpsichord").gain(0.2)

// drums · kick
const kick = s("bd").struct("<[x!2]!79 ~ [x!2]!12 ~>").gain(0.35)

// drums · snare
const snare = s("sd").struct("<A@7 ~ A@7 ~ A@7 ~ A@8 ~@3 B A@3 C A@26 ~@6 A@7 B A@7 ~@6>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.5)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@87 [~ x ~ x]!5 ~>").gain(0.15)

// drums · clap
const clap = s("cp").struct("<[~ x ~ x]!31 [~@3 x] [~ x ~ x]!47 [~@3 x] [~ x ~ x]!7 ~@6>").gain(0.5)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@87 [~ x ~ x]!5 ~>").gain(0.15)

// drums · hihat
const hihat = s("hh").struct("<A@15 B A@15 C A@47 D A@5 E@2 ~@6>".pickRestart({
  A: "x ~ x!2 ~@2 x ~@3 x!2 ~@2 x ~", B: "x ~ x!2 ~@2 x ~ x ~ x!2 ~@2 x ~", C: "x ~@6 x", D: "~@7 x",
  E: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~",
})).gain(0.45)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<A@7 ~ A@7 ~ A@63 ~ A@5 B@2 C@5 ~>".pickRestart({
  A: "~ x", B: "x!2", C: "x ~ x!2 ~@2 x ~ x ~ x!2 ~@2 x ~",
})).gain(0.25)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct("<x!79 ~ x!7 ~@6>").gain(1.07)

// drums · jingle bells · soft notes
const jingle_bells_soft = s("sleighbells:4").struct("<~@87 x!5 ~>").gain(0.43)

stack(
  percussive_organ, percussive_organ_soft, acoustic_guitar_steel, acoustic_guitar_steel_2, bass, bass_soft, harpsichord,
  harpsichord_soft, kick, snare, snare_soft, clap, clap_soft, hihat, hihat_soft, jingle_bells, jingle_bells_soft
)

More by The Notorious B.I.G.