Strudelify

Eleventh Hour

The Ventures

KeyG majorTempo90 bpm
0:00/0:00
// Eleventh Hour — The Ventures
// 90 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 56 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(90/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 · electric bass pick · "Bass"
const bass = note(`<
  ~@2 A@4 B@2 A@2 C D A@6 B@2 A@2 C D A E F G H I F J K L M@2 N O M@2 F ~ A@4 B@2 A@2 C D A@2 P ~
>`.pickRestart({
  A: "e2@2 b2 g2", B: "a2@2 e3 c3", C: "f#2@2 a2 g2", D: "f#2@2 g2 f#2", E: "e2@3 e2", F: "b1@23 ~", G: "b1@3 b2",
  H: "f#2@23 ~", I: "~@3 e2, f#2@23 ~", J: "b1@3 c#3", K: "c#2@23 ~", L: "~@3 g2", M: "a1@23 ~", N: "e2@23 ~",
  O: "~@3 g2, e2@23 ~", P: "e2 ~",
})).s("gm_electric_bass_pick").gain(0.26).pan(0.7)

// chords · electric guitar clean · "Rhythm"
const electric_guitar_clean = note("<~@26 A@2 B C A@2 D ~ E@2 F G E@2 H@2 ~@14>".pickRestart({
  A: "~ f#4, b2, ~ f#3@7, ~ b3@3, ~@3 d4@5", B: "~ c#4, f#2, ~ c#3@7, ~ f#3@3, ~@3 a3@5",
  C: "~ [f#3,a3,c#4,f#4]@21 ~@2, f#2, c#3@7 ~", D: "~ g#4, c#3, ~ g#3@7, ~ c#4@3, ~@3 e4@5",
  E: "~ e4, a2, ~ e3@7, ~ a3@3, ~@3 c4@5", F: "~ b3, e2, ~ b2@7, ~ e3@3, ~@3 g3@5",
  G: "~ [e3,g3,b3,e4]@21 ~@2, e2, b2@7 ~", // Em
  H: "[~@4 f#4@5 ~@7, b2@13 ~@11, ~@3 f#3@23 ~@22, ~@3 b3@10 ~@11, ~@3 d4@6 ~@7]/2",
})).s("gm_electric_guitar_clean").gain(0.19).pan(0.3)

// chords · electric guitar clean · "Rhythm 2"
const electric_guitar_clean_2 = note(`<
  ~@4 A@2 B@2 A@2 C@2 A@6 B@2 A@2 C@2 A@2 ~@16 A@4 B@2 A@2 C@2 A@2 ~@2
>`.pickRestart({
  A: "[~ [e3,g3,b3]@47, [e2,b2]@47 ~]/2", B: "[~ [c4,e4]@47, [a2,e3,a3]@47 ~]/2",
  C: "[~ [b3,d4,f#4]@47, [b2,f#3]@47 ~]/2", // Bm B5
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.3)

// drums · rim
const rim = s("rim").struct("<A@13 ~@12 A ~@7 A ~@7 A ~@12 A@2>".pickRestart({
  A: "x!4",
})).gain(0.36)

// drums · low tom
const low_tom = s("lt").struct("<~@14 x!11 ~@17 x!12 ~@2>").gain(0.36)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@14 A@11 ~ A@7 ~ A@7 ~ A@11 ~@3>".pickRestart({
  A: "~ x ~ x",
})).gain(0.54)

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A B@11 ~ B@7 ~ B@7 ~ B@12 ~@2>".pickRestart({
  A: "x!18 ~@6", B: "~@3 x!4 ~@2 x ~@14",
})).gain(0.36)

// drums · high tom
const high_tom = s("ht").struct("<~@13 A B@11 ~ C@7 ~ C@7 ~ B@12 ~@2>".pickRestart({
  A: "~@6 x!2", B: "~@4 x!4", C: "~ x",
})).gain(0.36)

stack(bass, electric_guitar_clean, electric_guitar_clean_2, rim, low_tom, pedal_hat, mid_tom, high_tom)

More by The Ventures