Strudelify
I Love You, I Honestly Love You cover art

If You Love Me, Let Me Know

I Love You, I Honestly Love You

Olivia Newton-John

KeyC majorTempo70 bpm
0:00/0:00
// I Love You, I Honestly Love You — Olivia Newton-John
// 70 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: duplicate parts dropped: ch 4 "Bright Piano" piano (copy of ch 1 "Piano (Melody)" piano); ch 5 "Acc. Bass" acoustic bass (copy of ch 2 "Piano (bass)" piano); ch 6 "Choir (Aahs)" choir aahs (copy of ch 3 "Strings" string ensemble 1)
// note: Full arrangement: all 55 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(70/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 · piano · "Piano (Melody)"
const piano = note(`<
  A B C D E F G H I J K@2 L B C D E F M H I J K@2 N O P@2 Q R S T U V W X Y@2 Z B C D E F M H I J K@2 AA AB AC AD@2
>`.pickRestart({
  A: "~@2 d4 ~ g#4 b4 [e4,c5]@2, ~@3 f4@3 ~@2", B: "e4 g4 g4@2 g4@2 e4 a4@2 g4@2 ~@4 d4",
  C: "e4 g4 g4@2 g4 a4@3 e4@4 ~@3 d4", D: "f4@2 f4@2 f4@2 g4 a4@3 g4@2 [c4,e4] [a#3,d4]@2 [a3,c4], d4@3 ~",
  E: "a3@15 c4, c4 ~@3", F: "e4@2 g4@2 g4!3 a4@3 g4@2 ~@2 c4 d4, c4@7 ~", G: "e4@2 d4 d4@2 c4 d4@2 ~@7 c4, a3@3 ~",
  H: "f4@2 f4 f4@3 f4@2 a4@2 a4 a4@3 c5@2, c4!2", I: "a4 g4@3 [a3,c4]@2 [b3,d4]@2, [c4,f4] ~",
  J: "[c4,e4]@4 [c4,e4]@3 e4 a4@2 ~@2 [c4,e4]@4, ~@2 [c4,e4] ~, ~@5 g4@3", // C
  K: "[[b3,d4]@4 [b3,d4]@4 [a3,c4]@3 c4 f4!3 [a3,c4,f4]@3 [g3,c4,e4]@6 [c4,e4]@2 [e4,g4]@2 [e4,g4]@2 [g4,b4]@2, ~@12 [a3,c4]@3 ~@17]/2", // Bm Am F C Em G Am
  L: "[g4,b4,d5] [d4,g4,b4]!2 [b3,d4,g4] [f4,a4,c5] [c4,f4,a4]!2 [a3,c4,f4]", // G F
  M: "e4@2 d4 d4@2 c4 d4@2 ~@6 c4!2, a3@3 ~", N: "[g4,b4,d5] [d4,g4,b4]!2 [b3,d4,g4] [d4,f4,a#4]@2 [e4,g4,c5]@2",
  O: "a4@2 a4@2 a4@2 a4 b4@3 d5@2 b4 a4 b4@2, [c4,f4]@7 [d4,g4]@9", // F5 G5
  P: "[a4@2 g4 ~@3 d4@2 c4@7 ~ f4 f4@2 f4 f4@2 f4@2 a4@2 g4 g4@3 g4@2, d4@6 ~@9 c4@9 [b3,d4]@8, ~@3 g4@9 ~@20]/2", // Bm
  Q: "[c4,e4]@4 ~@2 [f#4,a4] [g#4,b4], ~@5 d4@3", // C F#m G#m
  R: "[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 b4 [e4,g4,d5]@2 c5 [e4,g4,c5]@6", // C Em7 C
  S: "[d4,g4,b4]@2 [c4,f4,a4] [c4,f4,a4]@9 ~@2 f4 g4", T: "a4@2 a4@2 a4@2 e4 c4@7 ~ d4, c4@7 g4@5 ~@2 c4@2",
  U: "e4@2 d4@2 d4@2 ~ c4 c4@2 [a3,c4]@2 [a3,c4]@2 [b3,d4]@2, c4@7 ~ d4@6 ~@2", // Am Bm
  V: "[c4,e4]@4 [c4,e4]@4 e4 [e4,a4]@2 ~ [c4,e4]@4, ~@8 c4@3 g4@5", W: "[b3,d4]!4", X: "[a3,c4]!4",
  Y: "[[f3,g#3,c4]@4 [f3,g#3,c4]@4 [f3,g#3]@3 c4 d4!3 [f3,g#3,d4]@3 [e3,g3,c4]@6 [c4,e4]@2 [e4,g4]@2 [e4,g4]@2 [g4,b4]@2, ~@12 [f3,g#3]@3 ~@17]/2", // Fm Ddim C Em G Fm
  Z: "[b4,d5] [g4,b4]!2 [d4,g4] [a4,c5] [f4,a4]!2 [c4,f4]", // Bm G G5 Am F F5
  AA: "[g4,b4,d5]@2 [d4,g4,b4]@2 [d4,g4,b4]@2 [b3,d4,g4]@2 a3@3 ~ e4!2 e4@2, ~@11 c4@5, ~@3 a3", // G
  AB: "~@3 e4 c4@2 [c4,e4]@2", // C
  AC: "[g4,b4,d5]@2 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 [b3,d4,g4]@2 [f4,a4,c5]@2 ~ [c4,f4,a4]@2 [c4,f4,a4]@2", // G F
  AD: "[[a3,c4,f4]@2 ~ [b3,d4,g4]@19 ~@10]/2", // F G
})).s("gm_piano").gain(0.8).pan(0.7)

// chords · piano · "Piano (bass)"
const piano_2 = note(`<
  A B C D E F G H I J K L M B C D E F G H I J K L N@2 O P Q R S T P J@2 U M V W B C D E F G H I J K L X Y Z@3
>`.pickRestart({
  A: "~ b3@5 g3@2, c3", B: "[g3,c4]@3 [g3,c4], c3", C: "[g3,b3]@3 [g3,b3], c3", D: "[c3,f3,a#3]",
  E: "~ c3 f3 c3 g3 c3 f3 c3, f2", F: "[g2,e3]@3 [g2,e3]", G: "[f#2,d3]@4 f#2 d3 [a3,c4] d3", H: "[f2,a3] [e2,g3]",
  I: "[d2,f3]@2 a2 ~ g2@4, ~@3 f3@5", J: "[c3,g3]!4", K: "[c3,g3]!2 [c3,f3] c3", L: "c3!4", M: "c2!4",
  N: "[c2!2 c3 ~ [f2,a3]@2 [f2,g3]@2, ~@3 c3@3 ~@2]/2", O: "[e2,g3]@4 a2 e3 g3 e3", P: "[d2,f3] [g2,f3]",
  Q: "c2 g2 e3 g3 [b2,a3]@2 e2@2", R: "[a2,e3,c4]@4 [g2,e3,c4]@2 e3 g2", S: "f2@5 c3 a3@2 b3@2 a3 a3@5",
  T: "[f2,a3]@2 [e2,g3] c3", U: "[c3,f3]!4", V: "c3!2 [c3,g3]@2", W: "[c3,g3] [c3,f3]", X: "[c3,g3]!2 [c3,f3]!2",
  Y: "c2 g2 e3 g3 e3@2 [c3,g3]@2", Z: "[[c3,g3]@5 [c3,g3]@4 c3@5 c3@5 [c2,e3]@19 ~@10]/3",
})).s("gm_piano").gain(0.49).pan(0.3)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A B@2 C D E F G H I J@2 K B@2 C D E F G H I J@2 L M N O P Q R S@2 I T U V@2 W B@2 C D E F G H I J@2 X Y Z AA@2
>`.pickRestart({
  A: "~@2 d4 f4@3 e4@2", B: "e4", C: "d4@12 c4 a#3@2 a3", D: "a3", E: "c4", F: "a3@13 [a3,c4]@2 c4", G: "c4!2",
  H: "[c4,f4]@2 [a3,c4] [b3,d4]", I: "[c4,e4]!4",
  J: "[[b3,d4]@4 [b3,d4]@4 [a3,c4]@3 c4 [a3,c4]@3 [a3,c4]@3 [g3,c4]@6 [c4,e4]@2 [e4,g4]@2 [e4,g4]@2 [g4,b4]@2]/2", // Bm Am C5 C Em G
  K: "[g4,b4,d5] [d4,g4,b4]!2 [b3,d4,g4] [f4,a4,c5] [c4,f4,a4]!2 [a3,c4,f4]", // G F
  L: "[g4,b4,d5] [d4,g4,b4]!2 [b3,d4,g4] [d4,f4,a#4]@2 [e4,g4,c5]@2", M: "[c4,f4]@7 [d4,g4]@9", N: "d4@6 d4@2 c4@7 c4",
  O: "c4 [b3,d4]", P: "[c4,e4]@4 ~@2 f#4 g#4, ~@5 d4@3", Q: "[e4,g4]@2 [e4,g4]@2 [e4,g4]@3 [e4,g4]@3 [e4,g4]@6",
  R: "[d4,g4]@2 [c4,f4] [c4,f4]@9 ~@4", S: "[c4@7 c4@7 c4@9 c4@3 [a3,c4]@2 [a3,c4]@2 [b3,d4]@2]/2", T: "[b3,d4]!4",
  U: "[a3,c4]!4", // Am
  V: "[[f3,g#3,c4]@4 [f3,g#3,c4]@4 [f3,g#3]@3 c4 [f3,g#3]@3 [f3,g#3]@3 [e3,g3]@6 [c4,e4]@2 [e4,g4]@2 [e4,g4]@2 [g4,b4]@2]/2", // Fm Em C Em G
  W: "[b4,d5] [g4,b4]!2 [d4,g4] [a4,c5] [f4,a4]!2 [c4,f4]", // Bm G G5 Am F F5
  X: "[g4,b4,d5]@2 [d4,g4,b4]@2 [d4,g4,b4]@2 [b3,d4,g4]@2 a3@3 ~ a3@4, ~@11 c4@5", Y: "~@3 [c4,e4]",
  Z: "[g4,b4,d5]@2 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 [b3,d4,g4]@2 [f4,a4,c5]@2 ~ [c4,f4,a4]@2 [c4,f4,a4]@2", // G F
  AA: "[[a3,c4,f4]@2 ~ [b3,d4,g4]@19 ~@10]/2", // F G
})).s("gm_string_ensemble_1").gain(0.72).pan(1)

// drums · kick
const kick = s("bd").struct("<~ [x!2]!51 [x ~@8 x ~@6] [~@3 x ~@12] ~>").gain(0.8)

// drums · snare
const snare = s("sd").struct("<~ [~ x ~ x]!51 [~@5 x ~@8 x ~] ~@2>").gain(0.8)

// drums · hihat
const hihat = s("hh").struct("<~ [x!8]!51 [x ~ x ~@2 x ~ x ~ x ~@2 x ~ x ~] [x ~@2 x ~@12] ~>").gain(0.8)

stack(piano, piano_2, string_ensemble_1, kick, snare, hihat)

More by Olivia Newton-John