Strudelify
The Shiznit cover art

The Shiznit

Snoop Dogg

KeyF minorTempo97 bpm
0:00/0:00
// The Shiznit — Snoop Dogg
// 96.9 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 100 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96.9/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, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass · "BASS"
const bass = note("<A@8 B@8 C@5 D@72 E@7>".pickRestart({
  A: "[~@16 f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 c2@2 [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 f1, ~@15 f1@3 ~@13 f1@3 ~@13 f1@3 ~@13 f1@3 c1 ~@12 f1@3 ~@13 f1@3 ~@13 f1@3 ~@14]/8", // C Db Gb Db Gb C Db Gb …
  B: "[f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 c2@2 [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 f1, ~@15 f1@3 ~@13 f1@3 ~@13 f1@3 ~@13 f1@3 c1 ~@12 f1@3 ~@13 f1@3 ~@13 f1@3 ~@14]/8", // C Db Gb Db Gb C Db Gb …
  C: "[f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 [c1,c2] ~ [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 ~ f2@2 c2@2 [db1,db2] ~ [gb1,gb2]@4 [db1,db2] ~ [gb1,gb2]@3 f1, ~@15 f1@3 ~@13 f1@3 ~@13 f1@3 ~@13 f1@3 c1 ~@13]/5", // C Db Gb Db Gb C Db Gb …
  D: "[~ f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 f1@2, ~@46 f1@9 ~@39 f1@9 ~@39 f1@9 ~@39 f1@9 ~@39 f1@9 ~@39 f1@9 ~@39 f1@9 ~@41]/8", // C Db Gb Db Gb C Db Gb …
  E: "[~ f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 ~@3 f2@6 [c1,c2]@3 ~@3 [db1,db2]@3 ~@3 [gb1,gb2]@12 [db1,db2]@3 ~@3 [gb1,gb2]@9 f1@9 ~@41, ~@46 f1@9 ~@39 f1@9 ~@39 f1@9 ~@39 f1@9 ~@39 f1@9 ~@89]/7", // C Db Gb Db Gb C Db Gb …
})).s("gm_fretless_bass").gain(0.64)

// other · dulcimer · "TWANG SOUND"
const dulcimer = note(`<
  ~@17 A B C D ~@4 A B E D ~@4 A B E D ~@4 F B E D ~@18 G H E I ~@4 G H E I ~@4 G H E I G H E I ~@13
>`.pickRestart({
  A: "c5@12 ab4@12 b4@12 ~ g4@11", B: "~ bb4@12 gb4@12 ab4@12 f4@11", C: "~ c5@12 ab4@11 b4@12 ~ g4@11",
  D: "~ bb4@12 gb4@12 ab4@12 f4@8 ~@3", E: "~@2 c5@11 ab4@12 b4@12 g4@11", F: "~ c5@12 ab4@12 b4@12 g4@11",
  G: "~ c5@12 ab4@12 b4@12 ~ g4@10", H: "~ bb4@6 gb4@6 ab4@6 f4@5", I: "~ bb4@6 gb4@6 ab4@6 f4@4 ~",
})).s("gm_dulcimer").gain(0.4)

// chords · reed organ · "REED ORGAN PAD"
const reed_organ = note("<~ A@20 B@12 C@8 D@8 E@6 D@40 F@5>".pickRestart({
  A: "[f5@3 eb5 f5@3 eb5, ab5]/4", B: "[f5@72 ~ eb5@24 f5@72 eb5@23, ab5]/4",
  C: "[f5@72 ~ eb5@24 f5@72 eb5@24 f5@72 eb5@24 f5@72 eb5@23, ab5@193 ab5@191]/8",
  D: "[~ f5@72 eb5@24 f5@72 eb5@24 f5@72 eb5@24 f5@72 eb5@23, ~ ab5@192 ab5@191]/8",
  E: "[~ f5@72 eb5@24 f5@72 eb5@24 f5@72 eb5@23, ~ ab5@216 ~@71]/6",
  F: "[~ f5@72 eb5@24 f5@72 eb5@24 ~@47, ~ ab5@192 ~@47]/5",
})).s("gm_reed_organ").gain(0.14)

// other · reed organ · "REED ORGAN PAD"
const reed_organ_2 = note("<~ A@8 ~@4 A@32 B@4 C@6 B@4 D@24 ~@4 E@8 F@5>".pickRestart({
  A: "ab5/8", B: "[~ ab5@191]/4", C: "[~ ab5@287]/6", D: "[~ ab5@383]/8", E: "[~ ab5@192 ab5@191]/8",
  F: "[~ ab5@192 ~@47]/5",
})).s("gm_reed_organ").gain(0.24)

// other · electric guitar muted · "MUTED ELEC GUIT"
const electric_guitar_muted = note("<~@29 A B@2 C D ~@15 A B@2 C E C D ~@35 A B@2 C A B@2 C D>".pickRestart({
  A: "~ [f3,f4]@2 ~@4 [c3,c4]@2 ~@4 [eb3,eb4]@2 ~ [f3,f4]@2 ~@4 [ab3,ab4]@9 [f3,f4]@2 ~@4 [eb3,eb4] ~@2 [f3,f4]@3 ~@5", // F C Eb F Ab F Eb F
  B: "[~@7 [c4,c5]@2 ~@4 [bb3,bb4]@2 ~ [ab3,ab4]@2 ~ [f3,f4]@2 ~ [ab3,ab4]@9 [f3,f4]@2 ~@4 [eb3,eb4] ~@2 [f3,f4]@2 ~ [f3,f4]@2 ~ [f3,f4]@4 ~@5 [c3,c4]@2 ~@4 [eb3,eb4]@2 ~ [f3,f4]@2 ~@4 [ab3,ab4]@9 [f3,f4]@2 ~@4 [eb3,eb4] ~@2 [f3,f4]@2 ~@6]/2", // C Bb Ab F Ab F Eb F …
  C: "~@7 [c4,c5]@2 ~@4 [bb3,bb4]@2 ~ [ab3,ab4]@2 ~ [f3,f4]@2 ~ [ab3,ab4]@9 [f3,f4]@2 ~@4 [eb3,eb4] ~@2 [f3,f4] ~@2 [f3,f4] ~@4", // C Bb Ab F Ab F Eb F
  D: "~ [f3,f4] ~@46", // F
  E: "~@7 [c3,c4]@2 ~@4 [eb3,eb4]@2 ~ [f3,f4]@2 ~@4 [ab3,ab4]@9 [f3,f4]@2 ~@4 [eb3,eb4] ~@2 [f3,f4]@2 ~@6", // C Eb F Ab F Eb F
})).s("gm_electric_guitar_muted").gain(0.19).pan(1)

// other · acoustic guitar nylon · "ACOUSTIC GUIT" · Ab
const acoustic_guitar_nylon = note(`<
  ~@82
  [~@25 f5@3 ~@4 gb5@2 ~@3 g5@3 ~@2 [ab4,ab5]!2 ~@3 [ab4,ab5], ~@24 f4@3 ~@3 gb4@4 ~@2 g4@4 ~@8]
  ~@17
>`).s("gm_acoustic_guitar_nylon").gain(0.19).pan(0.6)

// drums · snare
const snare = s("sd").struct("<~ [~ x ~ x]!20 [~@13 x ~@23 x ~@10]!78 ~>").gain(0.64)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~ [~@3 x ~@3 x]!20 [~@19 x ~@23 x ~@4]!78 ~>").gain(0.64)

// drums · ride
const ride = s("rd").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~
  B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@2
>`.pickRestart({
  A: "x", B: "~ x ~@46",
})).gain(0.64)

// drums · shaker
const shaker = s("sh").struct("<~ [x!8]!20 [~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4]!78 ~>").gain(0.64)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct(`<
  ~ A@2 B C B D E F A@3 G C A@2 B H I J K B L M A@3 B H A@6 N A@7 O A@5 B F A@2 P N Q A R A@2 O S A T Q U V U W X U O Y
  Q Z U AA U A U AB U@5 AC U@10 AD AE ~
>`.pickRestart({
  A: "x!8", B: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x", C: "~@6 x ~@5 x ~@5 x ~@5 x ~@4 x ~@6 x ~@4 x ~@6",
  D: "~@5 x ~@5 x ~@6 x ~@4 x ~@5 x ~@6 x ~@5 x ~@5", E: "~ x ~@4 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@5 x ~@5 x",
  F: "~@6 x ~@5 x ~@4 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5", G: "x ~@5 x ~@5 x ~@4 x ~@6 x ~@4 x ~@5 x ~@5 x ~@5 x",
  H: "~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5", I: "x ~@5 x ~@4 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5",
  J: "x ~@4 x ~@5 x ~@6 x ~@5 x ~@4 x ~@6 x ~@5 x ~@5", K: "x ~@5 x ~@4 x ~@6 x ~@4 x ~@6 x ~@5 x ~@5 x ~@5",
  L: "~@5 x ~@6 x ~@4 x ~@5 x ~@6 x ~@5 x ~@5 x ~@4 x", M: "~@5 x ~@5 x ~@6 x ~@4 x ~@5 x ~@5 x ~@6 x ~@5",
  N: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@4 x ~@5", O: "x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5",
  P: "x ~@5 x ~@6 x ~@4 x ~@6 x ~@4 x ~@6 x ~@4 x ~@5", Q: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@4",
  R: "x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5", S: "x ~@5 x ~@6 x ~@5 x ~@5 x ~@4 x ~@7 x ~@4 x ~@4",
  T: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~@4", U: "~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4",
  V: "~ x ~@4 x ~@6 x ~@4 x ~@6 x ~@4 x ~@6 x ~@4 x ~@5", W: "x ~@5 x ~@6 x ~@4 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5",
  X: "x ~@6 x ~@5 x ~@4 x ~@6 x ~@5 x ~@5 x ~@5 x ~@4", Y: "x ~@5 x ~@6 x ~@4 x ~@5 x ~@5 x ~@5 x ~@6 x ~@4",
  Z: "x ~@5 x ~@6 x ~@4 x ~@6 x ~@5 x ~@5 x ~@5 x ~@4", AA: "x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5",
  AB: "x ~@6 x ~@5 x ~@5 x ~@4 x ~@6 x ~@5 x ~@5 x ~@4", AC: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@4",
  AD: "~@2 x ~@4 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4", AE: "~ x ~@4 x ~@6 x ~@5 x ~@4 x ~@6 x ~@5 x ~@5 x ~@4",
})).gain(1.04)

stack(
  bass, dulcimer, reed_organ, reed_organ_2, electric_guitar_muted, acoustic_guitar_nylon, snare, pedal_hat, ride,
  shaker, jingle_bells
)

More by Snoop Dogg