Strudelify

Low Rider

War

KeyG majorTempo140 bpm
0:00/0:00
// Low Rider — War
// 140 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (5/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 "Ocarina Bass" ocarina (copy of ch 1 "Bass" fretless bass); ch 4 "Soprano Sax" soprano sax (copy of ch 3 "Marimba" marimba); ch 5 "Sax Echo" alto sax (copy of ch 3 "Marimba" marimba, 0.083 beats late); ch 3 "Marimba" marimba (copy of ch 6 "Baritone Sax" baritone sax, 0.067 beats late)
// note: Full arrangement: all 152 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 · [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.

// bass · fretless bass · "Bass"
const bass = note(`<
  ~@3 A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A
  B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C
  A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C D
>`.pickRestart({
  A: "g1 ~ b1@2 ~@2 c2@2 ~@2 c#2@2 ~@2 d2@2", B: "~ f2 ~ d2 f2 ~ f2 g2", C: "~ f2 ~ d2 f2 g2 f2 g2", D: "g1@3 ~@13",
})).s("gm_fretless_bass").gain(0.4)

// chords · epiano2 · "Elec Piano"
const epiano2 = note(`<
  ~@3 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 B A B A B A B C
>`.pickRestart({
  A: "~@4 [g3,b3,d4] ~@5 [g3,b3,e4] ~@5", B: "~@2 [g3,d4,f4] ~@3 e4 ~ [g3,d4,f4] ~@3 [g3,d4,e4] ~@3",
  C: "[g3,b3,d4] ~@15", // G
})).s("gm_epiano2").gain(0.3)

// bass · acoustic guitar steel · "808 Kick"
const bass_2 = note("<~@2 [~@14 c2 ~] [c2 ~@3 d2 ~ c2 ~ c2 ~@3 d2 ~ c2 ~]!112 [c2 ~@5 c2 ~ c2 ~@5 c2 ~]!36 [c2 ~@15]>")
  .s("gm_acoustic_guitar_steel").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@2 [~@7 x] [x ~@2 x!2 ~@2 x]!148 x>").gain(0.56)

// drums · cowbell
const cowbell = s("cb").struct("<[~@6 x!2] [x ~ x!3 ~ x!2]!29 [x ~ x!3 ~@3] [x ~ x!3 ~ x!2]!120 x>").gain(0.24)

// drums · bongos
const bongos = s("bongo:4").struct("<~@2 [~@7 x] [x!2 ~ x!3 ~ x]!148 x>").gain(0.63)

// drums · congas
const congas = s("conga:33").struct("<~@2 [x!16] x ~@148>").gain(1.02)

// drums · ht
const ht = s("ht").struct("<~@2 [~@7 x] [~@3 x] [~ x ~ x]!147 x>").gain(0.32)

// drums · mt
const mt = s("mt").struct("<~@3 A ~ A ~ A ~ A ~@142>".pickRestart({
  A: "x",
})).gain(0.4)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@2 [~@3 x] [x!4]!148 x>").gain(2.43)

// drums · shaker
const shaker = s("sh").struct("<~@2 [~@6 x!2] [x!8]!148 x>").gain(0.56)

// drums · guiro
const guiro = s("guiro:0").struct(`<
  ~@2 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
  A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~
>`.pickRestart({
  A: "~@7 x",
})).gain(11.83)

// drums · guiro
const guiro_2 = s("guiro:4").struct(`<
  ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
>`.pickRestart({
  A: "x",
})).gain(11.83)

stack(bass, epiano2, bass_2, kick, cowbell, bongos, congas, ht, mt, cabasa, shaker, guiro, guiro_2)

More by War