Strudelify
The Word cover art

Rubber Soul

The Word

The Beatles

KeyD minorTempo104 bpm
0:00/0:00
// The Word — The Beatles
// 104 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(104/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 · fretless bass · "Fretless E Bass"
const bass = note(`<
  ~ A@5 B C D E F G H I J K L M N A@3 B C D E F G H I J K L M N A@3 B C D E F G H I J K L M N A@3 B C D E F G H I O K L
  M P Q@3 R S T U F G H V W K L M X Q@3 R S T U F G H V W K L M X
>`.pickRestart({
  A: "d2@2 d2@2 ~@2 d2 c2 a1@2 a1@2 ~@2 c2 db2", B: "d2@2 d2@2 ~@2 d2 c2 a1@2 a1@2 ~@2 d2 f2",
  C: "g2@2 g2@2 ~@2 g2 f2 d2@2 d2@2 ~@2 d2 f2", D: "g2@2 g2@2 ~@2 g2 f2 d2@2 d2@2 c2@2 a1@2",
  E: "d2@2 d2@2 ~@2 d2 c2 a1@2 a1@2 ~@2 a1 c2", F: "d2@2 d2@2 ~@2 d2 c2 a1@2 a1@2 c2@2 a1@2", G: "a1 db2 e2 a2@3 ~@2",
  H: "g1 b1 d2 g2@3 ~@2", I: "d2@4 ~@2 d2 c2 a1@2 a1@2 ~@2 c2 db2", J: "d2@2 d2@2 ~@2 d2 c2 a1@2 a1@6", K: "d2!4",
  L: "c2!4", M: "f2!4", N: "g2@4 g2@4 g2@4 g2 a2 c3@2", O: "d2@2 d2@2 ~@2 d2 c2 a1@2 a1@4 a1@2",
  P: "g2@4 g2@4 g2 a2 c3 ~ g2 a2 c3 ~", Q: "d2@4 d2@3 c2 a1@2 a1@2 c2@2 d2@2", R: "d2@4 d2@3 c2 a1@2 c2@2 d2@2 gb2@2",
  S: "g2@4 g2@3 f2 d2@2 d2@2 f2@2 g2@2", T: "g2@4 g2@2 f2@2 g2 a2 c3 a2 g2 f2 d2 ~",
  U: "d2 ~ d2 ~ d2 ~ c2 ~ a1 ~ a1 ~ c2 ~ d2 ~", V: "d2@4 d2@3 c2 a1@2 a1@2 c2@2 db2@2", W: "d2@4 d2@3 c2 a1@4 a1@4",
  X: "g2!4",
})).s("gm_fretless_bass").gain(0.54).pan(0.6)

// chords · piano · "Piano 1"
const piano = note(`<
  A@2 B C D C D E F C G H I J K L M N O C D C D E F C G H I J K L M N O C D C D E F C G H I J K L M N O C D C D E F C G
  H I J K L M N O P@4 Q@2 P@2 H I P R L M N O P@4 Q@2 P@2 H I P R L M N S
>`.pickRestart({
  A: "[~@8 [g4,b4]@2 ~@2 [d4,g4]@2 ~ f4 [d2,d3,gb4]@2 ~@6 [a1,a2]@2 [a1,a2]@2 [d4,gb4,a4]@2 [d4,gb4,a4]@2, ~@15 d4@3 ~@10 f4 ~ f4 ~]/2", // G G5 D A D
  B: "[d2,d3]!2 [d4,gb4,a4] ~ [a1,a2] ~ [d4,gb4,a4]!2, ~@4 f4 ~@7 f4 ~ f4 ~", // D A D
  C: "[d2,d3]!2 [d4,gb4,a4]!2 [a1,a2]!2 [d4,gb4,a4]!2, ~@4 f4 ~ f4 ~@5 f4 ~ f4 ~", // D A D
  D: "[d2,d3]!2 [d4,gb4,a4]!2 [a1,a2]@2 [d4,gb4,a4]!2, ~@4 f4 ~ f4 ~@5 f4 ~ f4 ~", // D A D
  E: "[g1,g2]!2 [g3,d4,f4]!2 [d2,d3]!2 [g3,d4,f4]!2", F: "[g1,g2]!2 [g3,d4,f4]!2 [d2,d3]@2 [g3,d4,f4]!2",
  G: "[d2,d3]!2 [d4,gb4,a4]!2 [a1,a2]@2 [d4,gb4,a4] ~, ~@4 f4 ~ f4 ~@5 f4 ~@3", // D A D
  H: "[a2,a3,d4,a4]@3 [a2,a3,db4,a4]@3 ~@2", I: "[g2,g3,c4,g4]@3 [g2,g3,b3,g4]@3 ~@2",
  J: "[d2,d3]@2 [d4,gb4,a4]!2 [a1,a2]!2 [d4,gb4,a4]!2, ~@4 f4 ~ f4 ~@5 f4 ~ f4 ~", // D A D
  K: "[d2,d3]!2 [d4,gb4,a4]!2 [d2,d4,gb4,a4]!2 [d2,d4,gb4,a4]@2, ~@4 f4 ~ f4 ~ f4 ~ f4 ~ f4 ~@3", L: "[d2,d4,gb4,a4]!4",
  M: "[c2,c4,e4,g4]!4", N: "[f2,a3,c4,f4]!4", O: "[g2,d4,f4,g4]!4",
  P: "[d2,d3] ~ [d4,gb4,a4] ~ [a1,a2]!2 [d4,gb4,a4]!2, ~@4 f4 ~@7 f4 ~ f4 ~", // D A D
  Q: "[g1,g2] ~ [g3,d4,f4] ~ [d2,d3]!2 [g3,d4,f4]!2", R: "[d2,d3] ~ [d4,gb4,a4] ~ [a1,a2]@2 [a1,a2]@2, ~@4 f4 ~@11",
  S: "[g2,d4,f4,g4]@2 [g2,d4,f4,g4]@2 [g2,d4,f4,g4]@2 [g2,d4,f4,g4] ~", // G7
})).s("gm_piano").gain(0.52).pan(0.1)

// chords · electric guitar muted · "Muted Gtr."
const electric_guitar_muted = note(`<
  ~ A@6 B@2 A@2 C D A@2 E@3 F A@4 B@2 A@2 C D A@2 E@3 F A@4 B@2 A@2 C D A@2 E@3 F A@4 B@2 A@2 C D A@2 E@3 F A@4 B@2 A@2
  C D A@2 E@3 F A@4 B@2 A@2 C D A@2 E@3 G
>`.pickRestart({
  A: "~@2 [c4,f4] ~@2 [c4,f4] ~@2", B: "~@2 [b3,f4] ~@2 [b3,f4] ~@2", C: "d4@3 db4@3 ~@2", D: "c4@3 b3@3 ~@2",
  E: "d3@4 c3@4 a2@3 g2 a2 c3@3", F: "d3@4 c3@4 a2!3 g2 a2 g2 f2@2", G: "d3@4 c3@4 a2!3 g2 a2 g2 ~@2",
})).s("gm_electric_guitar_muted").gain(0.45).pan(1)

// chords · rock organ · "Organ 3"
const rock_organ = note("<~@62 A B@6 ~@9 A C@6 ~@9 A D@4>".pickRestart({
  A: "~@8 c6@4 a5 g5@2 f5", B: "[~@4 f5@2 g5@2 ~@2 g5 f5, d5, ~ c5@2 ~ a4@2]/6",
  C: "[~@4 f5@2 g5@2 ~@2 g5 f5, d5, a4@3 ~ a4@2]/6", D: "[~@8 f5@4 g5@3 ~, d5@15 ~, a4@11 ~@5]/4",
})).s("gm_rock_organ").gain(0.58).pan(0.2)

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

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B A@2 B A@2 C A@2 ~@2 D E F G@3 C A@3 H A B A ~@2 D E F G@3 A B A@6 ~@2 D E F G@3 A@8 ~@2 D E F G@3 A@8 ~@2 D E F
  G@3 A@8 ~@2 D E F G@3
>`.pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", C: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", D: "~ x!7", E: "x!4 ~@4",
  F: "~ x!3", G: "x!4", H: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@62 [~@8 x!2 ~ x!2 ~ x ~] ~@12 [~@13 x ~@2] ~@15 [~@13 x ~@2] ~@7>").gain(0.48)

// drums · open hat
const open_hat = s("oh").struct("<~@3 [~@15 x] ~@18 [~@15 x] ~@76>").gain(0.43)

// drums · mid tom
const mid_tom = s("mt").struct("<~@14 A ~@15 A ~@15 A ~@15 B ~@12 C ~@2 D ~@12 C ~@2 D ~@4>".pickRestart({
  A: "~@12 x!3 ~", B: "~@10 x ~@2 x ~@2", C: "~@11 x ~@4", D: "~@9 x ~@2 x ~ x ~",
})).gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~@11 A@2 B ~ B ~@11 A@2 B ~ B ~@11 A@2 B ~ B ~@11 A@2 B ~ B ~@11 A@2 B ~ B ~@11 A@2 B ~ B ~@3
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x",
})).gain(0.43)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~ A B@11 A B@15 A B@15 A B@15 A B@37>".pickRestart({
  A: "~@4 x!12", B: "x!16",
})).gain(1.36)

stack(bass, piano, electric_guitar_muted, rock_organ, kick, snare, hihat, low_tom, open_hat, mid_tom, crash, cabasa)

More by The Beatles