Strudelify
Walk Don't Run cover art

Walk Don't Run

The Ventures

KeyC majorTempo150 bpm
0:00/0:00
// Walk Don't Run — The Ventures
// 150 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 "Melody" electric guitar clean (copy of ch 3 "Melody Double" electric guitar muted)
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Intro Double.
setcpm(150/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.

// bass · synth bass 1 · "Bass"
const bass = note(`<
  ~@3 A B A B A C A D E F G H A C A D E F E@3 I J K L M K N A C A D E F E O P ~@3 A B A B A C A D E F G H A C A D E F
  E@3 I J K L M K N A C A D E F Q R@2
>`.pickRestart({
  A: "a1 ~ g1 ~", B: "f1@2 ~ e1@2 ~@3", C: "f1 ~ e1 ~", D: "f1 ~ g1 ~", E: "c2 ~ c2 ~", F: "g1 ~ g1 ~",
  G: "c2@2 ~@2 c2@2 ~ e1", H: "~ e2!7", I: "~@2 c2 ~@3 c2@2 c2@2 c2@2 c2@2 c2@2", J: "~@2 a1 ~@3 a1@2 a1@6 ~@2",
  K: "a1@5 ~@3", L: "f1!3 f1@2 f1!2 ~", M: "g1!3 g1@2 g1!2 ~", N: "e2 ~ e2 ~ e1 ~ e1 ~", O: "~@4 c2 ~@3 g2@2 ~@2 g2@4",
  P: "c2 ~@7", Q: "c2 ~ c2@2 f2 ~ f2 ~", R: "[~ c3@8 ~@7]/2",
})).s("gm_synth_bass_1").gain(0.51).pan(0.8)

// chords · electric guitar jazz · "Rhythm"
const electric_guitar_jazz = note(`<
  ~@3 A B A B A C A D E F E G A C A D E F E@3 H I J K F L M A C A D E F E N O ~@3 A B A B A C A D E F E G A C A D E F
  E@3 H I J K F L M A C A D E F P Q ~
>`.pickRestart({
  A: "[a2,e3,a3,c4,e4,a4]!3 ~ [g2,d3,g3,b3,d4,g4]!3 ~", // Am G
  B: "[f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 ~ [e2,b2,e3]@9, ~@3 [g#3,b3,e4]@5", // F E5 E
  C: "[f2,c3,f3,a3,c4,f4]!3 ~ [e2,b2,e3,g#3,b3,e4]!3 ~", D: "[f2,c3,f3,a3,c4,f4]!3 ~ [g2,d3,g3,b3,d4,g4]!3 ~",
  E: "[g2,c3,e3,g3,c4,e4]!3 ~ [g2,c3,e3,g3,c4,e4]!3 ~", F: "[g2,d3,g3,b3,d4,g4]!3 ~ [g2,d3,g3,b3,d4,g4]!3 ~",
  G: "~ [e2,b2,e3,g#3,b3,e4]!7", // E
  H: "~@2 [g2,c3,e3,g3,c4,e4] ~@3 [g2,c3,e3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4]@2", // C
  I: "~@2 [a2,e3,a3,c4,e4,a4] ~@3 [a2,e3,a3,c4,e4,a4]@2 [a2,e3,a3,c4,e4,a4]@5 ~@3", // Am
  J: "~ [c4,e4,a4]@11 ~@4, [a2,e3,a3]@3 ~", K: "[f2,c3,f3,a3,c4,f4]!3 ~ [f2,c3,f3,a3,c4,f4]!3 ~",
  L: "~ [e4,a4]@12 ~@3, [a2,e3,a3,c4]@3 ~", M: "[e2,b2,e3,g#3,b3,e4]!3 ~ [e2,b2,e3,g#3,b3,e4]!3 ~",
  N: "~@2 [g2,c3,e3,g3,c4,e4] ~@5 [g2,d3,g3,b3,d4,g4]@2 ~@2 [g2,d3,g3,b3,d4,g4]@4", O: "[g2,c3,e3,g3,c4,e4] ~@7",
  P: "[g2,c3,e3,g3,c4,e4]@2 ~@2 [g2,c3,e3,g3,c4,e4]@4 [f2,c3,f3,a3,c4,f4]@2 ~@2 [f2,c3,f3,a3,c4,f4] ~@3", // C F
  Q: "~@2 [g2,c3,e3,g3,c4,e4] ~@5", // C
})).s("gm_electric_guitar_jazz").gain(0.21).pan(0.7)

// drums · kick
const kick = s("bd").struct("<[x!2]!78 [~ x ~@6] ~>").gain(0.45).pan(0.2)

// drums · snare
const snare = s("sd").struct("<A B C B@11 ~ B@9 D E F B@2 C B@11 C A B@11 ~ B@9 D E F B@2 C B@8 G ~>".pickRestart({
  A: "x!16", B: "~@2 x!2 ~@2 x ~", C: "~@4 x ~ x ~@5 x ~ x!2", D: "~ x ~ x!5", E: "~@2 x ~@3 x ~ x ~@5 x!2",
  F: "x ~ x!3 ~ x!3 ~@5 x!2", G: "~ x!2 ~@13",
})).gain(0.45).pan(0.2)

// drums · low tom
const low_tom = s("lt").struct("<~@14 [~@3 x ~@2 x!2] ~@39 [~@3 x ~@2 x!2] ~@23 [~ x ~@6] ~>").gain(0.45).pan(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@14 [~@2 x ~ x!3 ~] ~@39 [~@2 x ~ x!3 ~] ~@25>").gain(0.45).pan(0.2)

// drums · high tom
const high_tom = s("ht").struct("<A ~@13 B ~@27 A ~@11 B ~@23 C ~>".pickRestart({
  A: "x!4", B: "~ x!4 ~@3", C: "~ x ~@6",
})).gain(0.45).pan(0.2)

// drums · crash
const crash = s("cr").struct("<~@24 A B C ~@15 D ~@21 A B C ~@11 E ~>".pickRestart({
  A: "~ x ~@2 x ~ x ~", B: "~ x ~@2 x ~@3", C: "~ x!2 ~", D: "~@6 x!2", E: "~@2 x!2 ~@12",
})).gain(0.45).pan(0.2)

// drums · ride
const ride = s("rd").struct("<~@3 A@11 ~ A@9 ~@3 A@15 ~ A@11 ~ A@9 ~@3 A@11 ~@2>".pickRestart({
  A: "x!8",
})).gain(0.45).pan(0.2)

stack(bass, electric_guitar_jazz, kick, snare, low_tom, mid_tom, high_tom, crash, ride)

More by The Ventures