Strudelify

Love Letters

Nat King Cole

KeyB minorTempo100 bpm
0:00/0:00
// Love Letters — Nat King Cole
// 100 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 70 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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 · "A.PIANO 1"
const piano = note("<A B@8 C@3 D@7 E F@7 G@6 H@5 I@7 J@8 K@7 L@5 M@5>".pickRestart({
  A: "~@7 f#3",
  B: "[~@6 c#4@3 ~@4 g4@2 ~@10 e5@2 ~@44 [b4,b5]@6 ~@22 g3@5 ~@51 a#2@2 ~ [f#1,f#2]@46 ~@10 f#4@5 f#4@6 f#4@5 [b3,d#4,f#4]@12 f#4@7 f#4@7, g#3@9 f3@15 d#5@3 [d#3,f5]@6 a#5@2 b5@3 d3@14 d4@2 f4@2 b4@3 d4@4 b4@3 [d5,d6]@11 [c#3,a4,e5,a5]@16 e4@11 f#2@19 g5 a#5 d6 g6@2 a#6 f#7@4 d7@2 a#6 g6 f#6 d6@2 [g5,a#5]@11 [g3,a#3]@2 [f#3,b3] d3@3 g2@2 ~@46 [b1,d#3,f#3]@51, ~@2 a#3@7 ~@2 f4@4 g#4@4 [g4,b4]@3 c#5@6 ~ [f#4,f#5]@8 c#6@2 g5@4 b3@3 d4@2 [a5,a6]@29 b4@10 e4@2 g5@25 a#3@2 d4 e4@42 ~@60 d#4@11 ~@12 [a#3,b3,d#4]@14, ~@4 b3@4 ~ [b3,d#4]@8 [e3,a#4]@11 ~@3 g#5@8 d5@9 [f4,b5,d6]@2 b3@28 ~@3 g3@8 b4@7 b3@9 ~@4 e3@32 f#5@2 [a#4,d5] g4 f#5 d5 a#4 g4 f#4 d4@9 ~@60 c#4@37, ~@18 b3@10 b3@11 [b5,d6]@2 g3@20 [f4,g5,g6]@17 ~@6 b3@5 g4@23 g3@6 g4 a#4@2 d5 e5@37 ~@97]/8", // B F# B D#sus2 D A Gm B5 …
  C: "[~@41 d#3@8 ~@20 b4@5 ~@18 b4@4, ~ [g#2,d#4,g#4]@48 [c#2,g#2,c#3,e3]@25 [f#2,e4,g4,c#5]@22, ~ b3@16 b3@5 a#3@6 b3@21 ~@9 g#4@16 ~@14 a#3@8, ~@7 d#3@27 ~@47 e3@15, ~@12 g#3@22 g#3@15 ~@15 a#4@10 ~@22]/3", // G#5 C#m C#dim
  D: "[~@2 a#4@5 ~@36 f#2@7 ~@8 d#5@6 d#5@5 d#5@5 ~@22 f5@6 ~@16 [d#3,f#4,a#4]@7 ~@20 f#3@8 ~@13 c#5@5 [g#3,c#5]@5 ~@22 c#5@4 ~@19 [e4,g#4]@3, ~@7 [b2,d#4,f#4,a#4,d#5]@30 [f#3,c#4]@13 ~@24 [a#2,g#4,d5]@16 d#5@3 a#3@15 a#3@17 ~@6 f#3@14 ~@16 g#3@10 ~@5 [g#2,a4,c5]@26 [c#3,e5]@22, ~@12 f#3@10 f#3@10 d#3@18 [f2,f3,g#3,b3,d#4]@25 ~@12 b3@15 f#5@23 ~@12 [c4,e4,b4]@16 [e4,g#4]@13 [c#4,e4,g#4]@10 ~ [c4,f#4]@11 [c4,f#4,g#4]@15 e4@11 b3@10, ~@17 a#3@33 ~@25 b4@27 [d#3,f#4,a#4]@16 ~@7 g#2@28 [c#2,c#3,d#4]@24 ~@15 c#5@5 d#5@5 g#4@19 ~@3, ~@27 [g#3,b3]@23 ~@31 g#3@22 ~@10 c#4@12 [c4,f4,a4]@13 ~@22 c#5@6 ~@16 g#3@12 g#3@8 ~@7 g#3@15]/7", // D#m C#5 E Bmaj7 F#5 A#7 G# C#m …
  E: "~@13 g2@7 ~@9 f#3@3, ~@5 [g3,b3,f4,a4,c#5]@15 [f#2,a#3,e4,a#4]@12", // F#7
  F: "[~@10 f#3@9 [f#4,f#5]@6 [f#4,f#5]@5 ~ [f#4,f#5]@4 ~@13 f#4@7 [f#4,f#5]@8 ~@35 g#2@6 c#3@7 b3@6 ~ b3@4 [c#3,b3,b4,b5]@5 ~@19 [a#4,a#5]@5 ~@18 [b3,b4]@6 b2@6 ~@14 b2@9 [e3,g#3]@9 ~ [e3,g#3,g#5]@6 [e3,g#3,c#4,c#5,g#5,c#6]@4, ~@10 [b1,f#2,b2,d#3]@53 g#2@21 [g#3,b3,d#4]@4 d#3@5 [f#3,b3,d#4]@11 [c#2,e3,g#3]@24 ~@4 a#3@9 [b4,e5,b5]@11 ~@11 [a#3,d#4,f#4,a#4]@12 [a3,a4]@13 [a3,d#4,f#4,a4,d#5]@17 ~@9 [d#4,d#5]@10, ~@19 f#3@12 f#3@5 b3@27 [g#4,d#5,g#5]@42 ~@6 [g#4,g#5]@17 e5@9 [e4,g4]@6 a#3@8 ~@7 f#3@17 [f#3,c#4,c#5]@29 ~@20, ~@25 c#4@22 f#5 [a#3,d#4]@15 b4@11 d#4 b3@4 d#3@4 b4@21 ~@13 e4@10 [f#2,e3,c#6]@24 [b1,b2,d#5,d#6]@24 ~@7 b2@13 ~@9 [e2,b2]@20, ~@25 d#4@10 d#4 [f#4,f#5]@5 f#3@21 ~@7 d#3@5 [a#3,a#4]@30 ~@7 c#3@7 [a#4,a#5]@10 c#5@24 ~@61 d#6@11]/7", // F# C#7 A# B E C#m B G#m …
  G: "[~@2 [e3,g#3,d#5,g#5,d#6]@6 b5@6 [g3,b3]@5 [g3,b3]@5 [g3,b3,c#4,c#5,c#6]@5 f#3@6 d#5@5 ~@7 [f#3,d#4,b4,b5]@6 ~@22 b3@10 g#3@10 ~@12 [b3,e4,g#4,g#5]@7 f#3@8 [f#2,f#3]@8 [a#3,e4,g5]@10 ~ [a#3,e4,g4,g5]@11 ~@34 [b3,a#4]@4 [f3,b4]@2, ~ d#4@6 ~ [g2,b2,e3,f#5,f#6]@21 [f#2,b2,d#3,e5,e6]@24 [f2,a#4,a#5]@32 [c#2,g#2,c#3,e3]@29 ~@38 [f#2,b2,b4,d#5,b5]@19 f#3@5 g#2@16, ~@14 [e4,e5,b5,e6]@16 ~@5 d#6@19 ~@13 [g#3,d4]@19 ~@9 [e4,g#4,g#5]@6 [e4,g#4,g#5] c#4@12 [b3,e4,e5,g#5,e6]@17 ~@29 f#3@10 f4@4 f#4@4 ~@4 [f3,g#4]@10, ~@19 [d#4,d#5,d#6]@11 ~@5 [f#3,d#4]@12 ~@7 [b2,d3,f3,f5]@32 ~@10 g#3@18 ~@16 [f#3,c#5,c#6]@22 ~ b1@24 b3@9 ~@6, ~@41 [b3,f#4,c#5,d#5,f#5,c#6]@13 ~@6 b3@15 ~@20 d#4@18 ~@27 [d#5,d#6]@12 ~@14 [b3,d#4]@11 [d#4,g4]@15]/6", // Emaj7 G C#m7b5 B E F# Edim Bmaj7 …
  H: "[~@14 [e3,e5]@4 f#3@4 ~@8 [f#4,f#5]@4 ~@15 a#3@5 ~@17 a#3@5 ~@24 g4@3 ~@4 d3@3 ~@19 a3@5 ~@23 d3@3, ~@2 g2@15 ~ [f#2,d3]@16 [f3,g4]@10 d4@10 [e2,e3]@22 c5@6 d#3@3 g3@2 c4@3 d#4@3 c4@3 d#4@7 d2@21 c4@10 g3@9 g3@11 [d4,d5]@6, ~@3 [g4,b4]@15 [f#4,f#5]@11 f#3@6 [f2,d3,a#4,g5]@20 ~@4 a#3@6 [g3,d4,a#4]@13 ~ c6@24 f#4@14 a4@17 ~@6 d3@16 g3@4, ~@7 c#5@11 ~@4 f#3@4 [b3,e4,e5]@9 ~@5 a#3@4 d5@20 [d5,a#5]@13 [a2,d#5]@26 c4@11 a3@3 c4@4 f#4@14 b3@8 [d4,d5]@3 b3@3 [d4,d5]@2 b3@9, ~@7 e3@3 [b3,d5]@8 ~@4 [d4,d5]@13 d5@9 [a4,a5]@34 g5@26 ~@6 d3@24 g2@26]/5", // E F# D Fsus2 E D G F# …
  I: "[~@21 d3@4 ~@63 g3@4 ~@15 c5@3 ~@4 d3@3 ~@19 d3@2 ~@18 d3@3 ~@19 g3@3 ~@19 f#3@4 ~@16 d4@3 f#4, g2@25 e2@13 e4@11 b2@5 g3@3 f#4@3 e4@3 b3@3 g3@9 e5@7 e4@3 [c4,g4,g5]@7 ~@6 f#3@8 [c4,g4,g5]@5 [c5,f#5] f#4@6 d5@21 ~@5 g3@8 b3@7 b3@6 [b4,b5]@3 e4@2 g4@5 [b3,b4,b5]@7 ~@2 e3@21 ~@2 f#3@10 b3@7, d5@6 f#3@8 b3@11 [g4,b4,e5]@44 c4@6 [g3,e4]@2 c4@3 [f#4,f#5]@12 c5@8 c4@3 d#4@14 [g2,b4,b5]@17 b3@12 b3@3 [d4,a4]@10 e4@6 g3@5 [b4,b5]@3 e4@9 ~@4 f#3@8 [c#4,b4,e5,b5]@3 a#3@2 [c#5,c#6]@5 ~@8 d4@3 a4@9, ~ d4@7 b3@3 [d4,d5]@6 [f#3,d4,d5]@8 e4@6 g3@2 b3@3 f#4@8 g3@3 e2@22 a2@24 ~@2 d3@15 f#3@8 ~@2 d3@11 d4@8 ~@2 d3@13 g3@5 c#3@22 [f#2,a#4,a#5]@23 [b2,d5,f#5,d6]@20, ~@3 d3@18 ~@7 b2@13 b3@11 e3@17 ~@3 e3@20 [d2,a4,a5]@26 ~@5 b3@3 d4@2 f#4@10 [g2,e4,g4]@21 ~@3 e3@19 e5@8 a#3@3 e4@13 ~@5 a3@14]/7", // C5 Cdim B Em C F# G D5 …
  J: "[~@23 g#3@4 ~@21 e3@2 ~@3 e3@3 ~@15 e3@4 ~@22 [g4,c5]@4 ~@26 d#5@7 d4@9 ~ d4@6 ~ [a3,b3,a4]@5 [b3,d4,d5]@5 [g3,b3]@6 b3@5 [d3,f#3,b3,d4,d5]@7 [d3,f#3,b3,d4,d5]@7 e3@6 g3@5 ~ g3@4 ~ b4@4 [g3,b3,e4,g4,b4]@5 [g3,b3,b4]@5 [g3,b3,d4,b4,e5]@6 ~ [b4,e5]@7 [c5,e5]@8 [b3,c4,e4,c5,e5]@6 [c4,c5]@4 ~@4 [g3,c4,g4,c5,g5]@3, ~@2 e2@12 [f4,g#4,b4]@13 e4@7 [a4,a5]@3 c4@2 [a4,a5] e4@10 g#5@18 g#3@2 [b4,b5]@5 [a2,c6]@18 [e4,e5]@8 [d2,a5]@14 d#4@3 a4@4 c5@12 ~@9 d5 d3@17 [d4,d5]@6 g3@19 ~@6 e3@31 [g3,b3,d4]@7 ~ g3@19 [a3,f#4,f#5]@6, ~@3 c5@24 ~@4 e3@13 a5 [a3,a4]@6 ~@5 e3@9 [b3,a4,d5,a5]@10 c5@15 c4@11 c5@10 c4@23 b3@16 [d4,b4,d5]@6 [a3,a4,b4]@29 ~ [g4,b4]@11 [b3,f#4,g4,b4]@5 f#4@15 b5@14 ~@18 [c4,c5]@4 ~@3, ~@3 [f4,g#4]@5 g#3@3 d4@6 g#3@2 e3@7 ~ c4@7 a3@8 c4@9 d5@8 b3@3 d4@13 e5@6 g3@3 c4@3 g3@15 a4@6 f#3@26 g3@27 g4@24 ~ [e4,e5]@16 [g3,b3,g4]@5 e5@5 [e4,g4]@19 ~@14 [b3,e4,e5]@11, ~@3 d4@3 d3@21 a2@24 [e2,g#4]@25 ~@3 e3@23 ~@3 d3@29 [g1,g2]@52 [e2,b2]@45 [a2,e3,c6]@25]/8", // C5 Asus2 Bm G Bm Em G Em7 …
  K: "[~ [f#3,c4,a4,c5]@5 ~ [a4,c5]@5 [c4,d#4,c5]@4 ~@5 [f#4,c5,f#5]@5 ~@12 [b3,d4]@5 [d3,b3,d4,g4]@5 d3@5 ~@12 g2@7 ~@8 e5@2 ~@2 e6@2 ~@4 e6@2 ~@2 e5@2 ~@2 e4@3 ~@6 d#5@2 ~@2 d#6@2 ~@4 d#6@2 ~@6 f#4@2 ~@9 d6 ~@4 d6@2 ~@2 d5@3 ~@2 d4@2 ~@4 c#4@2 c#5@2 ~@2 c#6@2 ~@4 c#6@2 ~@2 c#5@2 ~@3 c#4@3 c4@8 ~ c4@5 [c4,e4,e5]@6 [g3,c4,e4,g4,e5]@7 d3@8 [d2,d3]@9, ~ [d3,a5]@17 [c4,d#4] f#3@8 ~@6 d3@5 [g3,f#4]@10 [f3,a4]@24 [c3,e3]@10 [c3,e3]@12 b3@2 [g4,e5]@5 ~@4 d#4@4 d#5@2 g5@2 d#6@2 [b3,g6,d#7]@4 [g5,d#6]@2 [a3,d#5]@7 f3@25 ~@5 f#4@14 [a#3,c#4]@2 c#5 f#4@5 [a2,c3,e3]@27 ~@17, ~@6 [c4,d#4]@6 [a4,d#5]@14 [g1,d2,d5,b5]@22 ~@5 d3@19 [c2,g2,g3]@29 [f2,d#3,d4]@27 ~@4 [g4,d5] g3 [d3,b3]@19 ~@7 [a#3,c#4,c#5]@10 [f#5,c#6]@10 g3@20 ~@7 [g3,c4,c5,e5,c6]@17, ~@7 f#3@9 g5@10 g2@6 ~ g2@15 g2@11 [b3,d4,f4,g4,b4]@13 ~@6 e4@14 [g5,e6]@9 ~@8 c4@14 [b4,f#5]@4 ~@4 d4@3 d5@2 g5 d6@2 [a3,g6] d7@13 ~@9 f#5@2 c#6@2 [e4,f#6,c#7]@15 ~@7 [e4,c5,e5]@6 [a3,a4,c5]@13 ~@17, ~@12 f#4@4 c5 g4@10 b4@21 [d4,f4]@10 g3@14 ~@8 g4@2 [b3,e5]@2 g5@2 e6@2 [a3,g6,e7]@13 ~@6 g4@20 [g2,c4]@17 [g5,d6] g3@3 [g4,d5]@4 [a#2,c#3,e3,f#3]@29 ~@8 [b3,b4]@18 ~@17]/7", // F#dim Am Cm F#dim Bm G C D …
  L: "[[f#3,c4,d#5]@10 [f#3,c4,d#4,b4,d#5,b5]@11 d3@7 ~@14 d4@3 ~@17 e3@8 ~ c4@7 ~ c4@7 [c4,e4,c5,e5]@7 [g3,c4,e4,g4,c5,e5]@9 d3@10 [d2,d3]@10 [f#3,c4,d#5]@13 [f#3,c4,d#4,b4,d#5,b5]@15 ~@6 d3@4, [d3,a4,c5,a5]@21 [g2,g4,b4,d5,g5]@20 g3@5 g3@10 [g3,f#4]@15 g3@15 [a3,a4]@16 [g3,c4,c5,e5,c6]@20 [d3,a4,c5,a5]@28 ~@10, ~@28 d3@17 [e2,b2,b3,d#4]@25 ~ a2@31 ~@48 [g2,g4,b4,g5]@10, ~@28 g3@10 c#4@7 ~@5 e4@20 e4@8 [e4,e5] [b3,b4]@23 ~@58, ~@34 b3@11 ~@6 e3@11 g4@31 ~@67]/5", // Cdim B C D Cdim B D7 G …
  M: "[~@3 c#4@2 ~@10 g4@2 ~@30 [c4,c6]@8 ~@46 [g6,b6]@56 ~@3, b3@5 d4@5 g3 e4@7 ~@2 [a#3,a#4]@4 d5@4 ~@3 [a3,g5]@4 [d#4,a5]@5 [g4,b5]@15 d5@3 d6@12 d4@20 d6@64 ~@6, ~@6 e2@7 f#4@4 ~@5 c5@4 d#5@30 g5@6 d3@16 d5@64 ~@18, ~@7 b2@11 [g3,a4]@9 ~@2 [d#3,f5]@27 ~ b5@9 b3@17 [g5,b5]@64 ~@13, ~@8 [e3,d#4]@9 [c3,d#3]@10 [f2,g#2]@29 g2@18 [g4,b4]@64 ~@22]/5", // C G A# A7 D#dim G Gsus2 D#sus2 …
})).s("gm_piano").gain(0.4)

stack(piano)

More by Nat King Cole