Strudelify

Little Things

Bush

KeyG majorTempo110 bpm
0:00/0:00
// Little Things — Bush
// 110 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 82 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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: edit a riff to change every repeat.

// chords · distortion guitar · "Guitar"
const distortion_guitar = note("<~ A@8 ~@8 B@2 C D ~@8 B E C A@8 B@2 C D ~@8 B E C A@8 F G ~ A@16>".pickRestart({
  A: "[[a2,e3,a3]@2 [a2,e3,a3]@2 [f2,c3,f3] [f2,c3,f3]@2 [c3,g3,c4]@2 [c3,g3,c4]!4 [d3,a3,d4] [d3,a3,d4]@2]/2", // A5 F5 C5 D5
  B: "~@7 g3, c3 c4 c3 c4, ~ g3@2 g3@2 g3@2 ~", C: "~@7 d4, c3 c4 c3 c4, ~ g3@2 g3@2 g3@2 ~", D: "c4 ~",
  E: "~@7 g3, c3 c4 c3@2, ~ g3@2 g3@2 g3@2 ~, ~@3 c4", F: "~@15 d3, c3!8, ~ d3@2 d3@2 d3@2 d3@2 d3@2 d3@2 d3@2 ~",
  G: "e4 ~",
})).s("gm_distortion_guitar").gain(0.41)

// bass · electric bass finger · "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@2 B A B A B A B A B A B A B A B A B A B A B A@2 B A B
  A B A B A B A@2 B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "a1!4 f1!3 c2", B: "c2!5 d2!3",
})).s("gm_electric_bass_finger").gain(0.36)

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

// drums · snare
const snare = s("sd").struct("<[~@10 x!6] [~ x ~ x]!63 [x!8] [x ~ x ~ x ~@3 x!8] [~ x ~ x]!16>").gain(0.41)

// drums · hihat
const hihat = s("hh").struct("<~ A B@30 A B@22 A B@9 C B@16>".pickRestart({
  A: "~@2 x!6", B: "x!8", C: "x!4 ~@4",
})).gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~ [x!2 ~@6] ~@30 [x!2 ~@6] ~@22 [x!2 ~@6] ~@26>").gain(0.41)

// drums · crash
const crash = s("cr").struct(`<
  A B C B C B C B C ~@23 B C B C B C B C ~@15 B C B C B C B C ~@2 D B C B C B C B C B C B C B C B C
>`.pickRestart({
  A: "x!3 ~", B: "x!2", C: "~@5 x ~@2", D: "~@3 x ~@4",
})).gain(0.41)

stack(distortion_guitar, bass, kick, snare, hihat, mid_tom, crash)

More by Bush