Strudelify

The Blues Walk

Clifford BROWN

KeyB♭ majorTempo200 bpm
0:00/0:00
// The Blues Walk — Clifford BROWN
// 200 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5973433; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 81 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(200/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 · electric bass pick · "Bass Guitar"
const bass = note(`<
  ~ A@6 ~@2 B C D E F G H I J K L M B C D E F G H I J K L M B C D E F G H I J K L M B C D E F G H I J K L M B C D E F G
  H I J K L M J K L M J K L M J K N@2
>`.pickRestart({
  A: "[~@2 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@2 ab1@2 a1 bb1]/6", B: "bb1 d2 f2 e2",
  C: "eb2 g2 ab2 a2", D: "bb2 d2 eb2 e2", E: "f2 d2 bb1 d2", F: "eb2 g1 ab1 a1", G: "bb1 g1 ab1 a1", H: "bb1 d2 eb2 e2",
  I: "f2 gb2 g2 db2", J: "c2 d2 eb2 e2", K: "f2 eb2 d2 c2", L: "bb1!2 db2!2", M: "c2!2 b1!2", N: "[~@3 bb1@5]/2",
})).s("gm_electric_bass_pick").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~ A@7 B A@24 C@11 A C@11 A@15 ~@2 A@2 ~@2 A@2 D ~>".pickRestart({
  A: "x!2", B: "x", C: "x ~@2 x!2 ~@3", D: "x ~@2 x",
})).gain(0.3)

// drums · rim
const rim = s("rim").struct("<~@33 [~@3 x]!11 [~@6 x!2] [~@3 x]!11 [~@6 x!2] ~@24>").gain(0.3)

// drums · snare
const snare = s("sd").struct("<A B@7 C B@24 ~@24 B@13 D ~@2 B D ~@2 B D E ~>".pickRestart({
  A: "~@6 x!2", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@2 x ~@2 x!3", E: "~ x ~@2",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<~ A@7 ~ A@24 B@11 C B@11 C A@14 ~@2 A@2 ~@2 A@2 ~@2>".pickRestart({
  A: "x ~ x!3 ~ x!2", B: "~ x ~ x", C: "~ x ~@2",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@79 [~@3 x] ~>").gain(0.3)

stack(bass, kick, rim, snare, hihat, crash)