Strudelify

Love is All I Know

Ludwig van Beethovenììë

KeyF majorTempo111 bpm
0:00/0:00
// Love is All I Know — Ludwig van Beethovenììë
// 111 bpm, 12/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5295412; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 60 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(111/6)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O M P Q M R S T U V J W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ J W X Y Z
  AA AB AC J K AR M AS AT
>`.pickRestart({
  A: "a3 d4 f4 a3 d4 f4 a3 d4 f4 a3 d4 f4, d3@23 ~", B: "a3 d4 f4 a3 d4 f4 a3 d4 f4 a3 d4 f4, c3@23 ~",
  C: "bb3 d4 f4 bb3 d4 f4 bb3 eb4 g4 bb3 eb4 g4, bb2@11 ~ g2@11 ~",
  D: "a3 db4 g4 a3 d4 f4 a3 d4 e4 g3 db4 e4, a2@11 ~ a2@11 ~", E: "f3 a3 d4 a3 d4 f4 a3 d4 f4 a3 d4 f4, d3@23 ~",
  F: "a3 e4 g4 a3 e4 g4 a3 e4 g4 a3 e4 g4, db3@23 ~", G: "a3 d4 f4 a3 d4 f4 bb3 d4 g4 bb3 d4 g4, d3@11 ~ g2@11 ~",
  H: "a3 c4 f4 a3 c4 f4 bb3 c4 e4 bb3 c4 e4, c3@11 ~ c3@11 ~", I: "a3 c4 f4 a3 c4 f4 a3 d4 f4 a3 d4 f4, f3@23 ~",
  J: "a3 d4 f4 a3 d4 f4 a3 d4 f4 a3 d4 [d3,f4], d3@7 ~", K: "a3 d4 f4 a3 d4 f4 a3 d4 f4 a3 d4 [c3,f4], c3@7 ~",
  L: "bb3 d4 g4 bb3 d4 g4 bb3 eb4 g4 bb3 eb4 [g2,g4], bb2@11 ~ g2@9 ~@3", // G
  M: "a3 d4 e4 a3 d4 e4 a3 db4 e4 a3 db4 e4, a2@11 ~ a1@11 ~",
  N: "a3 d4 f4 a3 d4 f4 a3 d4 f4 a3 d4 [c3,f4], d3@11 ~ c3@9 ~@3", // F5
  O: "bb3 d4 f4 bb3 d4 [a2,f4] bb3 d4 f4 bb3 d4 [g2,f4], bb2@3 ~ g2@3 ~", // Dm G7
  P: "a3 d4 f4 a3 d4 f4 a3 d4 f4 a3 d4 f4, d3@11 ~ c3@11 ~",
  Q: "bb3 d4 f4 bb3 d4 f4 bb3 d4 g4 bb3 d4 [g2,g4], bb2@11 ~ g2@9 ~@3", R: "[d2,f3,a3,d4] ~@3",
  S: "[g2,d3]@3 ~ [g3,bb3] [a3,c4] [g2,d3]@3 [g2,e3]@3, [bb3,d4]@8 ~@4 [bb3,d4]@11 ~, ~ [g2,e3] ~@2", // G5 Gm Am G5 C Bb C
  T: "[f4,a4]@2 [f4,a4]!2 f4 g4 [f4,a4]@3 a2 b2 db3, [d2,a2] ~@3", U: "~ a3 d4 f4@3 ~ g3 c4 e4@3, d3@11 ~ c3@11 ~",
  V: "bb2 ~ a3 [ab2,gb3,c4,eb4]@2 [db4,e4] ~@3 a2@3, [d4,f4]@4 ~@8 [db4,e4]@11 ~, ~ f3@2 ~@2 [a2,g3]@4 ~@3", // Ab7 Dbm Dm Dbm A7
  W: "bb3 d4 g4 bb3 d4 g4 bb3 d4 g4 bb3 d4 [g2,g4], g2@7 ~", X: "c4 e4 g4 c4 e4 g4 c4 e4 g4 c4 e4 [c3,g4], c3@7 ~",
  Y: "c4 f4 a4 c4 f4 a4 db4 e4 a4 g4 f4 e4, f2@11 ~ a2@11 ~", Z: "[d3,a3,d4,f4] ~ [bb2,a3,f4,a4] ~",
  AA: "[g2,d4,f4,bb4]@3 g3 bb3 d4 g4!2 a4 bb4 a4 g4", AB: "[a2,db4,e4,a4]@3 ~@6 [bb2,a3,d4,f4]!3",
  AC: "[a2,g3,db4,e4] ~@3", AD: "a3 d4 f4 a3 d4 f4 a3 d4 f4 a3 d4 gb4, d3@23 ~",
  AE: "g3 bb3 d4 bb3 d4 g4 d4 g4 bb4 d4 g4 bb4, g2@23 ~", AF: "d4 a4 c5 d4 a4 c5 d4 a4 c5 d4 a4 c5, gb3@23 ~",
  AG: "d4 g4 bb4 d4 g4 bb4 db4 g4 bb4 d4 g4 bb4, g3@11 ~ e3@6 d3@6",
  AH: "e4 g4 a4 e4 g4 a4 e4 g4 a4 e4 g4 a4, db3@17 ~ db3@6",
  AI: "f4 a4 d5 f4 a4 d5 e4 ab4 b4 d4 f4 b4, d3@11 ~ ab2@6 ab2@6",
  AJ: "db5 db4 e4 a4 db4 e4 bb4 db4 e4 g4 db4 e4, a2@23 ~", AK: "~ db4 e4 a3 db4 e4 bb3 db4 e4 g3 db4 e4, a2@23 ~",
  AL: "f3 f4 a4 d5 f4 a4 f5 f4 a4 bb4 f4 g4, a2@23 ~", AM: "~ f3 a3 d4 f3 a3 f4 f3 a3 d4 f3 a3, ~ d7 f7 d7",
  AN: "e3 bb3 g3 db4 a3 e4 db4 g4 e4 bb4 g4 db5, a2@23 ~", AO: "f3 d4 a3 f4 d4 a4 f4 d5 a4 f5 d5 a4, a2@23 ~",
  AP: "d4 ab4 f4 b4 g4 d5 b4 f5 d5 ab5 f5 bb5, a2@5 ~@3",
  AQ: "b4 f5 d6 [ab2,gb3,c4,eb4]@2 [db4,e4] ~@3 a2@3, ~@5 [a2,g3]@4 ~@3, ~@12 [db4,e4]@11 ~", // Ab7 Dbm A7 Dbm
  AR: "bb3 d4 g4 bb3 d4 g4 bb3 eb4 g4 bb3 eb4 g4, bb2@11 ~ g2@11 ~",
  AS: "a3 d4 f4 a3 d4 f4 a3 d4 f4 d4 a3 f3, d2@11 ~ d2@6 a2@6", AT: "[d2,d3]@23 ~",
})).s("gm_piano").gain(0.25)

stack(piano)