Strudelify
KeyD♭ majorTempo140 bpm
0:00/0:00
// Lump — Presidents Of The United States
// 140 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 74 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · slap bass 1 · "Bass"
const bass = note(`<
  ~@8 A B C D A B C D E@2 F G E@2 F G A B C D A B C D E H I G E@2 F G E@2 F J E@2 F G E@2 F G A B C D A B C D E K L M E
  K L M E K L M E N
>`.pickRestart({
  A: "ab3 ~@5 gb3 ~ ab3 ~@5 gb3 ~", B: "ab3 ~@5 gb3 ~ ab3 ~ ab3 ~@5",
  C: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~", D: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ b2 ~ b2 ~",
  E: "ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~", F: "db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~",
  G: "gb3 ~ gb3 ~ gb3 ~ gb3 ~ gb3 ~ gb3 ~ gb3 ~ gb3 ~", H: "ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~@3 ab3 ~ ab3 ~",
  I: "f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~", J: "gb3 ~@3 gb3 ~@3 gb3 ~ gb3 ~ gb3 ~ gb3 ~",
  K: "ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ db3 ~", L: "~@10 e3 ~ f3 ~ gb3 ~",
  M: "~@2 gb3 ~@3 gb3 ~ bb3 ~ b3 ~ bb3 ~ gb3 ~", N: "ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ g3 ~ gb3 ~",
})).s("gm_slap_bass_1").gain(0.41)

// other · overdriven guitar · "Guitar on Overdrive"
const overdriven_guitar = note(`<
  ~@8 A B C D A B C D E@2 F G E@2 F G A B C D A B C D E H I G E@2 F G E@2 F J E@2 F G E@2 F G A B C D A B C D E K L M E
  K L M E K L M E N
>`.pickRestart({
  A: "db3 ~@5 b2 ~ db3 ~@5 b2 ~", B: "db3 ~@5 b2 ~ db3 ~ db3@3 ~@3",
  C: "f2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~", D: "ab3 ~ ab3 ~ ab3 ~ ab3 ~ ab3 ~ gb3 ~ gb3 ~ b2 ~",
  E: "db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~", F: "gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~",
  G: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~", H: "db3 ~ db3 ~ db3 ~ db3 ~ db3 ~@3 db3 ~ db3 ~",
  I: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~", J: "b2 ~@3 b2 ~@3 b2 ~ b2 ~ b2 ~ b2 ~",
  K: "db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ gb2 ~", L: "~@10 a2 ~ bb2 ~ b2 ~",
  M: "~@2 b2 ~@3 b2 ~ eb3 ~ e3 ~ eb3 ~ b2 ~", N: "db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ db3 ~ c3 ~ b2 ~",
})).s("gm_overdriven_guitar").gain(0.41)

// other · brass section · "Background (Brass Section)"
const brass_section = note("<~@32 A@2 B C D@2 E F G@2 H ~@2 I H ~@21 J K ~@2 J L>".pickRestart({
  A: "[f4@28 eb4 ~ f4 ~]/2", B: "gb4 ~@13 gb4 ~", C: "~@2 gb4 ~@3 gb4 ~ ab4 ~ gb4 ~ eb4 ~ gb4 ~", D: "ab4/2",
  E: "bb4 ~@11 bb4 ~ bb4 ~", F: "b4 ~ bb4 ~ b4 ~ bb4 ~ b4 ~ bb4 ~ db5 ~@3", G: "[db5@7 ~]/2", H: "bb4 ~@15",
  I: "~@8 ab4 ~ ab4 ~ ab4 ~ ab4 ~", J: "~@4 ab4 ~ ab4 ~ ab4@5 ~@3", K: "ab4 ~ ab4 ~ ab4 ~ ab4 ~@3 ab4 ~ ab4 ~ db4 ~",
  L: "ab4 ~ ab4 ~ ab4 ~ ab4 ~@9",
})).s("gm_brass_section").gain(0.41)

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

// drums · snare
const snare = s("sd").struct(`<
  A B A C A@4 D E ~@2 D E ~@2 A B A@6 D@2 ~@2 D@2 ~@5 F ~@3 F ~@4 A B@7 D@2 ~@2 D@2 ~@2 G H I J G H I J G H I J G H
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "~@4 x ~ x!3 ~@3 x ~@3", D: "~ x ~ x", E: "~@3 x", F: "~@7 x", G: "~@4 x ~ x!3 ~ x ~@3 x ~",
  H: "~@4 x ~ x!3 ~ x ~ x ~ x ~", I: "~@2 x ~@2 x!3", J: "~@2 x ~@3 x!2 ~@8",
})).gain(0.41)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@7 A B C D E B C D F ~@7 A B G D E B G D F H I J K H I J K H I L M N O@7 B G D E B G D F ~ P@2 Q ~ P@2 Q ~ P@2 Q ~ P
>`.pickRestart({
  A: "~@7 x", B: "x ~@2 x!2 ~@2 x", C: "x ~ x!2 ~ x ~@2", D: "x!8", E: "x ~ x ~ x ~ x ~ x ~ x!2 ~@3 x", F: "x!6 ~@2",
  G: "x ~@2 x!2 ~@3", H: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x!2", I: "x ~ x ~ x ~ x!3 ~ x ~ x ~@3", J: "~ x!3",
  K: "x ~@3 x ~@3 x ~ x!2 ~ x ~ x", L: "~@4 x ~ x!3 ~ x ~ x ~@3", M: "x ~@3 x ~ x!2 ~@8", N: "~@3 x ~ x ~ x",
  O: "~ x ~ x ~ x ~ x", P: "~@5 x!3", Q: "~@8 x!8",
})).gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@11 A ~@3 B ~@11 A ~@3 B ~ C D E ~ C D E ~ C D F G H@7 ~@3 A ~@3 B ~@14
>`.pickRestart({
  A: "~@12 x!3 ~", B: "~@12 x!4", C: "~@7 x", D: "x ~@6 x", E: "~@3 x", F: "~@8 x!8", G: "~ x!3", H: "x!4",
})).gain(0.41)

// drums · ride bell
const ride_bell = s("rd").struct("<~@34 [~@7 x] ~@3 [~@7 x] ~@35>").gain(0.41)

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

stack(bass, overdriven_guitar, brass_section, kick, snare, low_tom, mid_tom, ride_bell, splash)

More by Presidents Of The United States