Strudelify
KeyG minorTempo130 bpm
0:00/0:00
// Chase — Giorgio Moroder
// 130 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 6 "SWEEP PAD" pad sweep (copy of ch 4 "SLOWSTRIN" string ensemble 2)
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · synth bass 1 · "SYN BASS"
const bass = note(`<
  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 D C D E F E F ~@2 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 D G
>`.pickRestart({
  A: "bb2 c3!3 bb2 c3 eb3 c3", B: "f2 g2!3 f2 g2 bb2 g2", C: "bb2 eb3!3 bb2 eb3 g3 eb3", D: "ab2 db3!3 ab2 db3 f3 db3",
  E: "g2 c3!3 g2 c3 eb3 c3", F: "g2 d3!3 g2 d3 f3 d3", G: "bb2 eb3!3 bb2 eb3 ~@2",
})).s("gm_synth_bass_1").gain(0.43)

// chords · string ensemble 2 · "SLOWSTRIN"
const string_ensemble_2 = note(`<
  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 D E D F G F G F@2 A B A B A B A B A B A B A B A B A B A B A B A B E D E
>`.pickRestart({
  A: "~ eb5@15, [bb4,c5,g5]", B: "[bb4,d5,g5,bb5]", C: "[eb5,g5,bb5]", D: "[db5,f5,ab5]@15 ~", E: "[eb5,g5,bb5]@15 ~",
  F: "[c5,eb5,g5]@15 ~", G: "[bb4,d5,f5,g5]@15 ~",
})).s("gm_string_ensemble_2").gain(0.18)

// drums · kick
const kick = s("bd").struct("x!4").gain(0.57)

// drums · snare
const snare = s("sd").struct("<~@16 [~ x ~ x]!83>").gain(0.57)

// drums · hihat
const hihat = s("hh").struct("<~@32 [x!8]!66 [x!7 ~]>").gain(0.57)

// drums · bongos
const bongos = s("bongo:18").struct("<~@42 [x!8]!56 [x!7 ~]>").gain(1.31)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<~@42 [x!8]!56 [x!7 ~]>").gain(3.65)

stack(bass, string_ensemble_2, kick, snare, hihat, bongos, agogo_bells)