Strudelify

Liebesleid

Fritz Kreisler

KeyA♭ majorTempo120 bpm
0:00/0:00
// Liebesleid — Fritz Kreisler
// 120 bpm, 3/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5943880; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 166 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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
const piano = note(`<
  A B C D E@2 F G H@3 I J K@3 L@2 M@2 N@4 O@4 P Q@3 R S@3 T U@3 V W X Y Z AA AB@2 AC@2 AD@2 AE@2 AF@2 AG@3 AH AI@4 AJ@3
  AK AL@3 AM AN@6 AO@3 AP@2 AQ@2 AR@2 AS@2 AT@7 AU AV@2 AW AX AY@2 AZ BA BB@2 BC BD BE@3 AC@2 AD@2 AE@2 BF@2 BG@3 BH
  BI@4 BJ@3 BK@4 BL BM@8 BN BO@2 BP@2 BQ@2 BR@2 BS@8 BT@5
>`.pickRestart({
  A: "~@5 [f1,f2]@5 ~ [c3,f3,ab3]@5", B: "[f3,ab3,c4]@5 [ab1,ab2]@5 ~ [f3,ab3,c4]@5",
  C: "[ab3,c4,f4]@5 [bb1,bb2]@5 ~ [bb3,db4,f4]@5", D: "[db4,f4,bb4]@5 [bb1,bb2]@5 ~ [bb3,db4,f4]@5",
  E: "[[ab3,db4,f4]@5 [g1,g2]@5 ~ [eb3,bb3,db4]@5 [bb3,db4,eb4]@5 [eb1,eb2]@5 ~ [bb3,db4,eb4]@5, ~@11 f2@10 ~@11]/2", // Db G Eb7 Eb Eb7
  F: "[g3,db4,eb4]@5 [ab1,ab2]@5 ~ [eb3,ab3,c4]@5", G: "[ab3,c4,eb4]@5 [c2,ab2]@5 ~ [ab3,c4,eb4]@5",
  H: "[[g3,c4,eb4]@5 ~@6 [db3,ab3,db4]@5 [ab3,db4,f4]@5 ~@6 [ab3,c4,eb4]@5 [ab3,c4,f4]@5 bb1@5 ~ [db3,gb3,bb3]@5, ~@5 f2@15 ~ db2@15 ~@12]/3", // Cm Db5 Db Ab Fm Gb
  I: "[bb3,db4,f4]@5 bb1@5 ~ [db3,f3,bb3]@5", J: "[f3,bb3,db4]@5 c2@5 ~ [c3,f3,ab3]@5",
  K: "[[ab3,c4]@5 ~@6 [g3,bb3,c4]@5 [g3,bb3,c4]@5 ~@11 c2@3 ~@2 [f1,f2]@3 ~@8, ~@5 [c1,c2]@15 ~ [f1,f2]@10 ~@17, ~@9 [f3,ab3,c4,f4]@5 ~@2]/3", // Ab C7 F C F Fm
  L: "[~@5 f2@5 ~ c3@3 ~@2 c3@3 ~@2 f2@5 ~ c3@3 ~@2, ~@5 [ab3,f4]@15 ~ [g3,e4]@10 ~]/2", // Db C
  M: "[[a1,gb3,eb4]@5 bb1@5 ~ f2@3 ~@2 f2@3 ~@2 bb1@3 ~@3 [db4,f4]@5, ~@5 [f3,db4]@15 ~@12]/2", // Ebdim Db
  N: "[[f4,ab4]@5 [eb1,eb2]@5 ~ [eb3,bb3] ~@4 [eb3,bb3] ~@4 eb2@5 ~ [db3,g3,bb3] ~@4 [db3,g3,bb3] ~@4 [ab1,eb2]@5 ~ [c3,ab3] ~@4 [c3,ab3] ~@4 ab1@3 ~@3 [c4,eb4]@5, ~@5 [eb4,g4]@15 ~ [db4,f4]@15 ~ [c4,eb4]@15 ~@12]/4", // Fm Eb Eb5 Gdim Ab5 Fm Cm Eb …
  O: "[[eb4,g4]@5 [db2,ab2]@5 ~ [db3,f3,ab3] ~@4 [db3,f3,ab3] ~@4 f2@5 ~ [eb3,ab3] ~@4 [eb3,ab3] ~@4 bb1@5 ~ [bb2,db3]@3 ~@2 [bb2,db3]@3 ~@2 bb1@3 ~@3 [bb3,db4]@5, ~@5 [db4,f4]@15 ~ [c4,eb4]@15 ~ [bb3,db4]@15 ~@12]/4", // Eb Db5 Db Ab5 Bbm Db Cm Bbm
  P: "[db4,f4]@5 c2@5 ~ c3 ~@4, ~@5 [ab3,c4]@10 ~", // Db Ab
  Q: "[c3 ~@4 c2@5 ~ c3 ~@4 c3 ~@4 f2@5 ~ c3 ~@4 c2@3 ~@2 [db1,f2]@3 ~@8, [ab3,c4]@10 ~ [g3,bb3,c4]@10 [f3,ab3,c4]@20 ~@7]/3", // Db Ab C7 Fm
  R: "~@5 db2@5 ~ ab2@5, ~@5 [f4,ab4]@11", // Fm
  S: "[[f3,ab3]@5 db2@5 ~ ab2@5 ~@3 g4@2 c2@5 ~ ab2@5 eb3@5 c2@5 ~ eb4@5, ~@11 f4@11 ~@26, ~@11 ab4@8 ~@2 eb4@21 ~@6, ~@16 bb2@5 bb4@11 ab4@10 ~@6]/3", // Fm
  T: "d4@5 bb1@5 ~ gb2@5, ~@5 [db4,gb4]@11", // Gb5
  U: "[[db3,gb3]@5 bb1@5 ~ gb2@5 ~@3 [g3,e4]@2 ab1@5 ~ f2@5 c3@5 ~@6 [g3,e4]@5, ~@11 [db4,f4]@8 ~@2 c4@20 ~@7, ~@16 bb2@5 g4@10 ~ f4@10 ~@6, ~@37 ab1@11]/3", // Gb5 C Db
  V: "[a1,gb3,eb4]@5 bb1@3 ~@3 [f3,bb3,db4] ~@4", W: "[bb3,db4,f4] ~@4 [g1,g2]@3 ~@3 [bb3,db4,f4] ~@4",
  X: "[db4,f4,bb4] ~@4 [c2,c3]@3 ~@3 [ab3,c4,eb4] ~@4", Y: "[ab3,c4,f4] ~@4 [c2,c3]@3 ~@3 [ab3,d4,f4] ~@4",
  Z: "[d4,f4,ab4] ~@4 [ab1,c3]@3 ~@3 [f3,bb3,db4]@3 ~@2", AA: "[bb3,db4,f4]@3 ~@2 [ab1,c3]@3 ~@3 [e3,bb3,c4] ~@4",
  AB: "[[bb3,c4,g4] ~@4 [f2,c3]@5 ~ f3@5 c2@5 [f1,f2]@5 ~@6, ~@5 [ab3,c4,f4]@20 ~@7]/2", // C7 F5 F Fm
  AC: "[~@5 db2@5 ~ ab2@5 [f3,ab3]@5 db2@5 ~ [ab2,f4,ab4]@5, ~@5 ab4@16 ~@11, ~@5 f4@11 ~@16]/2", // Fm Db
  AD: "[[bb2,e4,g4]@5 c2@5 ~ ab2@5 eb3@5 c2@5 ~ eb4@5, ~@5 eb4@20 ~@7, ~@5 bb4@10 ~ ab4@10 ~@6]/2", // Edim
  AE: "[d4@5 bb1@5 ~ gb2@5 [db3,gb3]@5 bb1@5 ~ [gb2,db4,f4]@5, ~@5 gb4@16 ~@11, ~@5 db4@11 ~@16]/2", // Gb5 Gbmaj7
  AF: "[[bb2,g3,e4]@5 ab1@5 ~ f2@5 [c3,f4]@5 f4@5 ~ [g3,e4]@5, ~@5 c4@21 ~@6, ~@5 g4@11 ~@5 ab1@11]/2", // Edim F5 C
  AG: "[[a1,gb3,eb4]@5 bb1@5 ~ f2@3 ~@2 f2@3 ~@2 g1@5 ~ f2@3 ~@2 f2@3 ~@2 c2@5 ~ c3@3 ~@2, ~@5 [f3,bb3,d4]@16 [f3,bb3,db4]@16 [f3,ab3,c4]@11]/3", // Ebdim Bb Bbm Fm
  AH: "c3@3 ~@2 c2@5 ~ [g3,e4]@5, [ab3,c4,f4]@10 ~ c3@3 ~@2", // C Fm
  AI: "[[gb3,eb4]@5 c2@3 ~@3 c3@3 ~@2 [bb3,db4]@5 c2@3 ~@3 c3@3 ~@2 c3@3 ~@2 f2@3 ~@3 c3@3 ~@2 c2@3 ~@2 [f1,f2]@3 ~@8, c3@3 ~@2 f3@16 [e3,bb3,c4]@16 [f3,ab3,c4,f4]@20 ~@7, ~@5 [b3,d4]@11 c3@3 ~@45]/4", // Ebm Bbm F C7 Fm Bm
  AJ: "[~@5 [f2,a2]@5 ~ c3@3 ~@2 c3@5 [c2,a2]@5 ~ c3@3 ~@2 c3@5 [g2,bb2]@5 ~ c3@3 ~ d5, ~@5 [f3,a3,c4]@20 ~@2 [f3,a3,c4]@10 [e3,bb3,c4]@9 ~@2]/3", // F Gm F C7
  AK: "c3@5 [c2,bb2]@4 d5 ~ [e4,bb4,c5]@5, [e4,bb4,c5]@9 ~@2 c3@3 ~@2", // C7
  AL: "[c3@5 [g2,bb2]@5 ~ c3@3 ~@2 c3@5 [d2,bb2]@5 ~ c3@3 ~@2 c3@5 [f2,a2]@5 ~ c3@3 ~ d5, ~@5 [e3,bb3,c4]@20 ~@2 [e3,bb3,c4]@10 [f3,a3,c4]@9 ~@2]/3", // Gm F C7 F
  AM: "c3@5 [c2,a2]@4 d5 ~ [f4,a4,c5]@5, [f4,a4,c5]@9 ~@2 c3@3 ~@2", // F
  AN: "[c3@5 [f2,a2]@5 ~ c3@3 ~@2 c3@5 [c2,a2]@5 ~ c3@3 ~@2 c3@5 [bb1,g2]@5 ~ bb2@3 ~ e5 [bb2,g4,bb4,d5]@5 [g1,g2]@5 ~ bb2@3 ~@2 bb2@5 [c2,bb2]@5 ~ c3@3 ~ d5 c3@5 [c2,bb2]@5 ~ c3@3 ~@2, ~@5 [a3,c4]@31 ~@44 [e4,bb4,c5]@8 ~@8, ~@5 e3@10 ~ e3@10 ~ [eb3,gb3]@10 [d3,g3,bb3,d4]@15 ~ [f3,bb3,d4]@15 ~ [e3,bb3,c4]@27]/6", // F Eb Gm G C7 Am C7 Ebm …
  AO: "[c3@5 [f2,a2]@5 ~ c3@3 ~ f4 c3@5 [c2,a2]@4 [a4,c5,f5] ~ [c3,c5,f5,a5]@3 ~@2 c3@5 [f2,a2]@5 ~ c3@5, ~@5 [f3,a3]@30 ~@2 [f3,a3,c4]@11, ~@5 c4@9 ~ c4@21 ~@12, ~@16 [f4,a4]@9 ~@23]/3", // F
  AP: "[c3@5 [c2,a2]@5 ~ c3@5 c3@5 [g2,bb2]@5 ~ c3@5, [e3,a3,c4]@10 ~ [d3,a3,c4]@10 [d3,g3,bb3]@11]/2", // F Gm Am D7 Gm
  AQ: "[d4@2 f4@2 ~ [c2,bb2]@5 ~ c3@5 c3@5 [g2,bb2]@5 ~ c3@5, [g3,bb3]@20 ~ [g3,bb3,d4]@10 ~, c3@2 d4 ~@13, ~@5 [c4,e4]@15 ~@12]/2", // C7 Gm C
  AR: "[c3@5 [c2,bb2]@5 ~ c3@5 c3@5 [f2,a2]@5 ~ c3@5, [f3,bb3,d4]@10 ~ [e3,bb3,d4]@10 [f3,a3,c4]@11]/2", // C7 F Bb Em7b5 F
  AS: "[c4@2 e4@2 ~ [c2,a2]@5 ~ c3@5 c3@5 f2@5 ~ c3@5, [f3,a3]@21 [f3,a3,c4]@11, c3@2 c4 ~@13, ~@5 d4@15 ~@12]/2", // F
  AT: "[c3@5 [c2,a2]@5 ~ c3@5 c3@5 [bb1,g2]@5 ~ bb2@3 ~ e5 bb2@5 bb1@5 ~ g2@5 g2@5 [c2,bb2]@5 ~ c3@3 ~ d5 c3@5 [c2,bb2]@5 ~ c3@3 ~@2 c3@5 f2@5 ~ [f4,a4]@3 ~@2 [f4,a4,c5]@3 ~@2 [f4,a4,f5]@3 ~@8, [e3,a3,c4]@10 ~ [eb3,gb3,a3,c4]@10 [d3,g3,bb3,d4]@20 ~@2 [g3,bb3,d4]@10 [e3,bb3,c4]@20 ~@2 [g3,bb3,d4]@10 [f3,a3,c4]@20 ~@7, ~@32 [g4,bb4,d5]@8 ~@24 [e4,bb4,c5]@8 ~@19 c3@5 c3@5 [f1,f2]@5 ~@6]/7", // F Eb C7 F Am Ebdim Gm C7 …
  AU: "~@5 f1@5 ~ c2@5, ~@5 [ab3,c4,f4]@11", // Fm
  AV: "[[c2,e4]@5 [f1,eb4]@5 ~ f2@5 f2@5 bb1@5 ~ f2@5, [g3,c4]@10 ~ [gb3,a3,eb4]@10 [f3,bb3,db4]@11]/2", // C F7 C5 Ebdim Bbm
  AW: "f2@5 bb1@5 ~ [bb2,db4,f4,a4]@5, [db4,f4,bb4]@5 ~@3", AX: "[bb2,db4,f4,ab4]@5 eb1@5 ~ eb2@5, ~@5 [db4,eb4,g4]@11",
  AY: "[eb2@5 eb1@5 ~ eb2@5 eb2@5 ab1@5 ~ eb2@5, [g3,db4,f4]@10 ~ [g3,db4,e4]@10 [ab3,c4,eb4]@11]/2", // Gm7b5 Dbdim Ab
  AZ: "eb2@5 ab1@5 ~ [ab2,c4,eb4,g4]@5, [c4,eb4,ab4]@5 ~@3", // Abmaj7 Ab
  BA: "[ab2,c4,eb4,gb4]@5 db2@5 ~ db3@5, ~@5 [ab3,db4,f4]@10 ~", // Ab7 Db
  BB: "[db3@5 f1@5 ~ f2@5 f2@5 [bb1,ab3]@5 ~ bb2@5, [ab3,c4,eb4]@10 ~ [ab3,c4,eb4]@10 [bb3,db4]@11, ~@27 gb3@3 ~@2]/2", // Bb7 Ab Bbm
  BC: "bb2@5 bb1@5 ~ [bb2,ab3,db4,f4]@5, [bb3,db4,gb4]@5 ~@3", // Bbm7 Gb
  BD: "[bb2,g3,d4,eb4]@5 c2@3 ~@3 c3@3 ~@2, ~@5 [ab3,c4,f4]@10 ~", // Ebmaj7 Fm
  BE: "[c3@3 ~@2 c2@3 ~@3 c3@3 ~@2 c3@3 ~@2 f2@3 ~@3 c3@3 ~@2 c2@3 ~@2 f1@3 ~@8, [ab3,c4]@10 ~ [g3,bb3,c4]@10 [ab3,c4,eb4]@20 ~@7]/3", // Ab C7 Ab
  BF: "[[bb2,g3,e4]@5 ab1@5 ~ f2@5 [c3,f4]@5 f4@5 ~ [g3,e4]@5, ~@5 c4@20 ~@7, ~@5 g4@10 ~@6 ab1@11]/2", // Edim F5 C
  BG: "[[a1,gb3,eb4]@5 bb1@3 ~@3 f2@3 ~@2 f2@3 ~@2 g1@3 ~@3 f2@3 ~@2 f2@3 ~@2 c2@3 ~@3 c3@3 ~@2, ~@5 [f3,bb3,d4]@16 [f3,bb3,db4]@16 [f3,ab3,c4]@11]/3", // Ebdim Bb Bbm Fm
  BH: "c3@3 ~@2 c2@3 ~@3 [g3,e4]@5, [ab3,c4,f4]@10 ~ c3@3 ~@2", // C Fm
  BI: "[[gb3,eb4]@5 c2@3 ~@3 c3@3 ~@2 [bb3,db4]@5 c2@3 ~@3 c3@3 ~@2 c3@3 ~@2 f2@3 ~@3 c3@3 ~@2 c2@3 ~@2 [f1,f2]@3 ~@8, c3@3 ~@2 f3@16 [e3,bb3,c4]@15 ~ [f3,ab3,c4]@20 ~@7, ~@5 [b3,d4]@11 c3@3 ~@45]/4", // Ebm Bbm F C7 Fm Bm
  BJ: "[~@5 [c2,a2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,a2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,bb2]@3 ~@3 c3@3 ~@2, ~@5 [f3,a3,c4]@20 ~@2 [f3,a3,c4]@10 [e3,bb3,c4]@10 ~]/3", // F C7 F C7
  BK: "[[c3,d4]@2 f4@2 ~ [c2,bb2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,bb2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,bb2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,a2]@3 ~@3 c3@3 ~@2, bb3@21 [e3,c4]@20 ~@2 [e3,a3,c4]@10 ~@11, ~@2 d4 ~@29, ~@5 [c4,e4]@15 ~ bb3@15 ~ a3@5 ~@11 [a3,c4]@10 ~]/4", // Csus2 C7 F C Am C Am
  BL: "[c3,c4]@2 e4@2 ~ [c2,a2]@3 ~@3 c3@3 ~@2, a3, ~@2 c4 ~@5, ~@5 d4@11", // C F
  BM: "[c3@3 ~@2 [c2,a2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,a2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,bb2]@3 ~@3 c3@3 ~ e5 c3@3 ~@2 [c2,bb2]@3 ~ f3 ~ c3@3 ~@2 c3@3 f3 ~ [c2,bb2]@3 ~@3 c3@3 ~ d5 [g4,bb4]@5 [c2,bb2]@3 ~ f3 ~ c3@3 ~@2 c3@3 ~ e3 [c2,a2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,a2]@3 ~ [a4,f5] ~ [c3,c5,a5]@3 ~@2, ~@5 [f3,a3,c4]@20 ~@2 [e3,a3,c4]@10 [d3,bb3,c4]@15 ~@7 [bb3,c4]@10 ~@11 c5@8 ~@40, ~@48 [g4,bb4,d5]@10 ~ d3@8 ~@2 [e3,bb3,c4]@19 ~@3 [d3,bb3,c4]@10 [f3,a3,c4]@27, ~@80 c3@3 ~@45]/8", // F C7 Gm C7 F Dm F Am …
  BN: "c3@3 ~@2 [c2,a2]@3 ~@3 c3@3 ~@2, ~@5 [a3,c4,f4]@11", // F
  BO: "[c3@3 ~@2 [c2,a2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,bb2]@3 ~@3 c3@3 ~ d4, [a3,c4,e4]@10 ~ [a3,c4,d4]@10 [g3,bb3,d4]@9 ~@2]/2", // F C7 Am D7 Gm
  BP: "[c3@3 ~@2 [c2,bb2]@3 ~ d4 ~ c3@3 ~@2 c3@3 ~ c4 [c2,bb2]@3 ~@3 c3@3 ~@2, [bb3,f4]@9 ~@2 [bb3,c4,e4]@9 ~ [g3,bb3,d4]@10 ~]/2", // C7 Bb5 C7 Gm
  BQ: "[c3@3 ~@2 [c2,bb2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,a2]@3 ~@3 c3@3 ~ c4, [f3,bb3,d4]@10 ~ [e3,bb3,d4]@10 [f3,a3,c4]@9 ~@2]/2", // C7 F Bb Em7b5 F
  BR: "[c3@3 ~@2 [c2,a2]@3 ~ c4 ~ c3@3 ~@2 c3@3 ~ bb3 [c2,a2]@3 ~@3 c3@3 ~@2, [a3,e4]@9 ~@2 [f3,a3,d4]@9 ~ [f3,a3,c4]@11]/2", // F A5 Dm F
  BS: "[c3@3 ~@2 [c2,a2]@3 ~@3 c3@3 ~@2 c3@3 ~@2 [c2,bb2]@3 ~ d5 ~ c3@3 ~@2 c3@3 ~@2 [c2,bb2]@3 ~ f3 ~ c3@3 ~@2 c3@3 ~ f3 [c2,bb2]@3 ~ d5 ~ c3@3 ~@2 c3@3 ~@2 [c2,bb2]@3 ~ f3 ~ c3@3 ~@2 c3@3 ~ e3 [c2,a2]@3 ~@3 c3@3 ~@2 c3@3 ~ d3 [c2,bb2]@3 ~@3 c3@3 ~@2 [c3,f3]@3 ~@2 [c2,bb2]@3 ~@3 [c5,c6]@5, [e3,a3,c4]@10 ~ [d3,a3,c4]@10 [e3,bb3,c4]@15 ~@7 [d3,bb3,c4]@10 [e3,bb3,c4]@19 ~@3 [d3,bb3,c4]@10 f3@14 ~@2 [e3,bb3,c4]@12 ~@4 [e3,bb3,c4]@11, ~@27 c5@8 ~@24 c5@8 ~@18 [a3,c4]@11 ~@27 c3@3 ~@2, ~@91 [c5,c6]@8 ~@8 [c5,c6]@8 ~@13]/8", // F C7 F C7 F5 C7 C Am …
  BT: "[[c3,f3]@3 ~ [e3,c4] [f1,f2]@5 ~ c2@5 [c2,a3]@4 [d3,f3] [f1,f2]@5 ~ c2@5 [c2,a3]@4 [d3,bb3] [f1,f2]@5 ~ c2@5 [c2,a3]@4 [d3,f3] [f1,f2]@5 ~ c2@5 [c2,a3]@4 [d3,bb3] [f1,f2,c3,a3]@3 ~@8, ~@5 c3@14 ~@2 c3@14 ~@2 c3@14 ~@2 c3@14 ~@13, ~@5 a3@11 ~@5 a3@11 ~@5 a3@11 ~@5 a3@11 ~@16, ~@11 f4@13 ~@3 a4@10 f4@3 ~@3 f4@13 ~@3 f4@13 ~@8]/5", // F5 C F Dm F Gm F Dm …
})).s("gm_piano").gain(0.2)

stack(piano)

More by Fritz Kreisler