Strudelify

Joker's Wild

The Ventures

KeyA minorTempo140 bpm
0:00/0:00
// Joker's Wild — The Ventures
// 140 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · electric guitar clean · "Lead Guitar"
const electric_guitar_clean = note(`<
  ~@5 A B C D A B C D E F E F E F G@2 H I A B C D A B C D E F E F E F G@2 J K L M N O L M N O P Q P Q P Q R S H I A B C
  D A B C D E F E F E F G@2 H ~
>`.pickRestart({
  A: "a2 b2!2 a2 c3!2 a2 b2", B: "b2 a2 c3!2 a2 b2!2 a2", C: "f3@3 f3 c3@2 f3@2 g3@3 g3 d3@2 g3@2", D: "e3",
  E: "e3@3 c3@2 a2@2 f2", F: "e2@2 b2@2 f2 c3 f2 c3", G: "[a2@31 ~]/2",
  H: "[a3,c4,e4]!4 [a3,c4,e4]@2 [a3,c4,e4]@2 [a3,c4,f4]!4 [a3,c4,f4]@2 [a3,c4,f4]@2", // Am F
  I: "[a3,c4,e4]!4 [a3,c4,e4]@2 [a3,c4,e4]@2 [a3,c4,f4]!4 [a3,c4,f4]@2 ~@2", // Am F
  J: "[d4,f4,a4]!4 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a#4]!4 [d4,f4,a#4]@2 [d4,f4,a#4]@2", // Dm A#
  K: "[d4,f4,a4]!4 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a#4]!4 [d4,f4,a#4]@2 ~@2", L: "d3 e3!2 d3 f3!2 d3 e3",
  M: "e3 d3 f3!2 d3 e3!2 d3", N: "a#3@3 a#3 f3@2 a#3@2 c4@3 c4 g3@2 c4@2", O: "a3", P: "a3@3 f3@2 d3@2 a#2",
  Q: "a2@2 e3@2 a#2 f3 a#2 f3",
  R: "~@2 [a3,d4,f4]!2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 ~@2", // Dm
  S: "[g3,c4,e4]@2 [g3,c4,e4]!2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 ~@2", // C
})).s("gm_electric_guitar_clean").gain(0.48)

// chords · electric guitar clean · "Lead Guitar" · soft notes · Am F
const electric_guitar_clean_2 = note(`<
  ~@76
  [[a3,c4,e4]!4 [a3,c4,e4]@2 [a3,c4,e4]@2 [a3,c4,f4]!4 [a3,c4,f4]@2 [a3,c4,f4]@2]
>`).s("gm_electric_guitar_clean").gain(0.2)

// chords · acoustic guitar steel · "Rhythm Guitar"
const acoustic_guitar_steel = note(`<
  ~ A@3 B C@2 D E C@2 D F G H G H G H I@2 J@2 C@2 D E C@2 D F G H G H G H I@2 K@2 L@2 M N L@2 O P Q R Q R Q R S T U@2
  C@2 D E C@2 D F G H G H G H I@2 J@2
>`.pickRestart({
  A: "~ [a3,c4,e4,a4]!3 ~ [a3,c4,f4,a4]!3", // Am F
  B: "~@2 [e3,g#3,b3,e4]!2 [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]!4 [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]@2", // E
  C: "[~ [a3,c4,e4]!3 ~ [f3,a3,c4]!2 [a3,c4,e4]@2 [f3,a3,c4]!5 [a3,c4,e4]!2]/2", D: "~ [f3,a3,c4]!3 ~ [g3,b3,d4]!3",
  E: "~@2 [g#3,b3,e4]!2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]!4 [g#3,b3,e4]@2 [g#3,b3,e4]@2", // E
  F: "~@2 [e3,g3,c4]!2 [e3,g3,c4]@2 [e3,g3,c4]@2 [e3,g3,c4]!4 [e3,g3,c4]@2 [e3,g3,c4]@2", // C
  G: "[a3,c4,e4]!4 [a3,c4,e4]@2 ~@2 [a3,c4,e4]@4 [a3,c4,e4]@4", // Am
  H: "[g#3,b3,e4]!2 [g#3,b3,e4]@2 [g#3,b3,e4]@4 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2", // E F
  I: "[a3,c4,e4]!4 [a3,c4,e4]@2 [a3,c4,e4]@2 [a3,c4,e4]!4 [a3,c4,e4]@2 [a3,c4,e4]@2", // Am
  J: "[a3,c4,e4]!4 [a3,c4,e4]@2 [a3,c4,e4]@2 [f3,a3,c4]!4 [f3,a3,c4]@2 [f3,a3,c4]@2", // Am F
  K: "[a3,d4,f4]!4 [a3,d4,f4]@2 [a3,d4,f4]@2 [a#3,d4,f4]!4 [a#3,d4,f4]@2 [a#3,d4,f4]@2", // Dm A#
  L: "[~ [a3,d4,f4]!3 ~ [a#3,d4,f4]!2 [a3,d4,f4]@2 [a#3,d4,f4]!5 [a3,d4,f4]!2]/2", M: "~ [f3,a#3,d4]!3 ~ [g3,c4,e4]!3",
  N: "~@2 [a3,c#4,e4]!2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]!4 [a3,c#4,e4]@2 [a3,c#4,e4]@2", // A
  O: "~ [a#3,d4,f4]!3 ~ [c4,e4,g4]!3", // A# C
  P: "~@2 [a3,c4,f4]!2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]!4 [a3,c4,f4]@2 [a3,c4,f4]@2", // F
  Q: "[d4,f4,a4]!4 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@4 [d4,f4,a4]@4", // Dm
  R: "[c#4,e4,a4]!2 [c#4,e4,a4]@2 [c#4,e4,a4]@4 [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2", // A A#
  S: "~@2 [a3,d4,f4]!2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2", // Dm
  T: "~@2 [g3,c4,e4]!2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2", // C
  U: "[e3,a3,c4]!4 [e3,a3,c4]@2 [e3,a3,c4]@2 [f3,a3,c4]!4 [f3,a3,c4]@2 [f3,a3,c4]@2", // Am F
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0.3)

// bass · electric bass pick · "Bass"
const bass = note(`<
  ~ A@3 B C D E F C D E G H I H I H I J@2 A@2 C D E F C D E K H I H I H I J@2 L@2 M N O P M N O Q R S R S R S T U A@2 C
  D E V C D E W H I H I H I J@2 A@2
>`.pickRestart({
  A: "a2 f2", B: "e2@3 e3!2 d3 c3 b2", C: "~ a2!2 ~ f2!2 ~ a2", D: "a2 ~ f2!2 ~ a2!2 ~", E: "f2@2 c2 f2 g2@2 d2 g2",
  F: "e2@3 e2!2 d2 c2 b1", G: "c3@2 c2!3 d2 e2 f2", H: "a2@3 e2@3 a2!2", I: "e2 f2", J: "[a2@31 ~]/2",
  K: "c3@2 c2!2 e2!2 a2 g2", L: "d2 a#1", M: "~ d2!2 ~ a#1!2 ~ d2", N: "d2 ~ a#1!2 ~ d2!2 ~", O: "a#1!2 c2!2",
  P: "a2@2 a2!3 g2 f2 e2", Q: "f2@2 f2!6", R: "d2@3 d2@2 d2@2 ~", S: "a1!2 a#1!2", T: "d2@2 d2!2", U: "c2@2 c2!2",
  V: "e2@2 e2!3 d2 c2 b1", W: "c2@2 c2!3 d2 f2 g2",
})).s("gm_electric_bass_pick").gain(0.4).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@3 ~ A@9 B A B A@2 C ~ A ~ A@9 B A B A@2 C ~ A ~ A@9 B A B A@2 C ~ A ~ A@9 B A B A@2 C ~ A ~
>`.pickRestart({
  A: "x!2", B: "x ~ x!2", C: "x",
})).gain(0.42)

// drums · snare
const snare = s("sd").struct(`<
  A B@3 C B@3 D B@3 E B F B F B G ~ A B C B@3 D B@3 E B F B F B G ~ A B C B@3 D B@3 E B F B F B G ~ A B C B@3 D B@3 E B
  F B F B G ~ A B C
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "x ~@2 x!2 ~ x ~ x!5 ~ x ~", D: "~@4 x ~@5 x!3 ~ x ~", E: "~@2 x!3 ~ x ~ x!5 ~ x ~",
  F: "~@2 x ~@2 x ~ x", G: "~@4 x ~ x ~@4 x!2 ~ x ~",
})).gain(0.48)

// drums · ride
const ride = s("rd").struct(`<
  ~ A B A ~ A@3 C A@3 D A@6 D ~ A ~ A@3 C A@3 D A@6 D ~ A ~ A@3 C A@3 D A@6 D ~ A ~ A@3 C A@3 D A@6 D ~ A@2
>`.pickRestart({
  A: "x ~ x!6", B: "x!8", C: "x ~ x!2 ~@4", D: "x",
})).gain(0.48)

// drums · ride · soft notes
const ride_soft = s("rd").struct(`<
  ~ A ~ A ~ A@7 ~ A@6 ~@2 A ~ A@7 ~ A@6 ~@2 A ~ A@7 ~ A@6 ~@2 A ~ A@7 ~ A@6 ~@2 A@2
>`.pickRestart({
  A: "~ x ~@6",
})).gain(0.3)

stack(electric_guitar_clean, electric_guitar_clean_2, acoustic_guitar_steel, bass, kick, snare, ride, ride_soft)

More by The Ventures