Strudelify

Love Song

The Beatles

KeyD minorTempo84 bpm
0:00/0:00
// Love Song — The Beatles
// 84 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 56 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(84/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.

// chords · acoustic guitar nylon · "guitar"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L G H I M K N O@3 P Q@2 R@4 Q@2 S H I M T L O@3 P Q@2 U@4 Q@2 S H I J V W X Y
>`.pickRestart({
  A: "~@2 c4 f4@2 c4 f4 c4", B: "~@2 b3 e4@2 b3 e4 b3", C: "~@2 bb3 d4@2 bb3 d4 bb3", D: "~@2 a3 c4@2 a3 c4 a3",
  E: "~@2 gb3 a3 c4@2 gb3 a3 c4@2 gb3 a3 c4@2 gb3 a3", F: "d3@2 gb3 a3 c4@2 gb3 a3 c4@2 gb3 a3 c4@2 gb3 a3",
  G: "d4@3 [a3,d4]@4 ~", H: "~@3 b3@4 ~", I: "~@3 bb3@4 ~", J: "~@3 f3 f3@2 ~@2, ~@3 a3@3 ~@2",
  K: "~@6 gb3 a3 d3@2 gb3 a3 ~@4", L: "~@6 gb3 a3 d3@2 gb3 a3 c4@2 gb3 a3", M: "~@3 [f3,a3]@3 ~@2",
  N: "~@6 gb3 a3 d3@2 gb3 a3 c4@2 gb4 a4",
  O: "[f4 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,bb4]@2 [f4,bb4]@2 f4@2 d4@2 e4@3 ~ e4@4 ~, ~@15 c4@2 ~@7]/3", // F Bb5
  P: "~@3 [f3,a3] [a3,d4]@2 [d4,f4]@2", Q: "[a4@3 f4@4 g4@4 [e4,g4]@5]/2",
  R: "[d5@2 d5@4 d5@4 d5@4 d5@2 ~@2 f5@4 d5@4 c5@4 e4@6 ~@2 g4 a4 c5@2 d5@4 ~@4 f4@2 a3@2 f4@2 d4@2 f4@2 a3@2 f4@2, [f4,a4]@3 [f4,a4]@4 g4@4 f4@4 a4@4 ~@13, ~@7 g5@2 ~@23, ~@8 d5@3 ~@7 c4@2 e4@3 d4@5 ~@4]/4", // F
  S: "~@3 [a3,d4]@4 ~", T: "~@6 gb3 a3 d3@2 gb3 a3 c4@2 ~@2",
  U: "[d5@2 d5@4 d5@4 d5@4 d5@2 ~@2 f5@4 d5@4 c5@4 a4@2 ~@6 g4 a4 c5@2 d5@4 ~@4 f4@2 a3@2 f4@2 d4@2 f4@2 a3@2 f4@2, [f4,a4]@3 [f4,a4]@4 g4@4 f4@4 e4@3 c4@2 e4@3 d4@5 ~@4, ~@7 g5@2 ~@23, ~@8 d5@3 ~@5 a4@3 ~@13]/4", // F
  V: "~@6 gb3 a3 c4@2 gb3 a3 c4@2 ~@2", W: "~@6 gb3 a3 c4@2 gb3 a3 c4@2 ~@2, f3",
  X: "~@6 gb3 a3 c4@2 gb3 a3 c4@2 gb3 a3", Y: "[a2,d4]",
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// bass · acoustic bass · "bass"
const bass = note(`<
  A@4 B@2 C D E F B@2 C D E F B@2 G H I J K L M@2 N@2 K L C D E F B@2 G H I J K L M@2 N@2 K O C D E F P@3 B
>`.pickRestart({
  A: "d2 d3@7", B: "d2", C: "d2 a2 c3 f3@5", D: "d2 a2 b2 e3@5", E: "d2 g2 bb2 d3@5", F: "d2 f2 a2 c3@3 ~@2",
  G: "d2@2 d2 c2", H: "bb1!2", I: "a1@2 a1 c2", J: "d2@3 d2 d2@2 d2@2", K: "f2@3 f2@3 f2@2", L: "a2@2 e2 a1@3 c2@2",
  M: "[d2@3 d2!2 c2@2 bb1@4 bb1 bb1@2 bb1@2]/2", N: "[a1@3 a1!2 c2@2 d2@8 ~]/2", O: "a2@2 e2 a1@5",
  P: "[~ d2@2 d2@2 d2]/3",
})).s("gm_acoustic_bass").gain(0.37)

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

// drums · snare
const snare = s("sd").struct("<~@6 [~ x ~ x]!50>").gain(0.29)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@6 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "x!3 ~ x ~ x ~ x ~ x ~ x ~ x ~", B: "x!7 ~",
})).gain(0.25)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
>`.pickRestart({
  A: "~@7 x",
})).gain(0.22)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
>`.pickRestart({
  A: "~@3 x",
})).gain(0.32)

stack(acoustic_guitar_nylon, bass, kick, snare, hihat, open_hat, tambourine)

More by The Beatles