Strudelify

Rondino on a Theme by Beethoven

Fritz Kreisler

KeyE♭ majorTempo130 bpm
0:00/0:00
// Rondino on a Theme by Beethoven — Fritz Kreisler
// 130 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 3/4 at bar 1) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5580832; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 123 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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 A D B C E F G H F I G J K L@5 M N O@2 P@5 Q R A S T U V B W@2 X Y Z AA AB Y AC@2 AD AE AF AG AH AE AI AJ F G H
  F I G H AK AL AM@3 AN AO AP AQ AR AS AT@2 AU AO AP AV AW AX AY AZ BA BB BC AZ BA BD BE BF BG BH BI BJ BK@2 BL B C A D
  B C BM BN BO BP BQ I BR BS@2 BT@2 BU@6
>`.pickRestart({
  A: "g3@3 bb3@2 [eb4,g4]@3 bb3@3 g3@2 bb3@3, eb2@5 bb2@5 ~ bb1@5", // Eb
  B: "ab3@3 bb3@2 [d4,ab4]@3 bb3@3 ab3@2 bb3@3, f2@5 bb2@5 ~ f2@5", // Ddim
  C: "ab3@3 bb3@2 [d4,ab4]@3 bb3@3 ab3@2 bb3@3, bb1@5 bb2@5 ~ bb1@5", // Ddim
  D: "bb3@3 eb4@2 bb4@3 eb4@3 a3@2 bb3@3, g2@5 bb2@5 ~ gb2@5", E: "[eb2,bb2,g3,eb4,g4] ~@15",
  F: "eb2@3 bb3 ~ [eb4,g4] ~@2 bb3 ~@2 bb1@2 bb3 ~@2, g3 ~@4 bb2@3 ~@3 g3 ~@4", // Eb
  G: "f2@3 bb3 ~ [d4,ab4] ~@2 bb3 ~@2 f2@2 bb3 ~@2, ab3 ~@4 bb2@3 ~@3 ab3 ~@4", // Ddim
  H: "bb1@3 bb3 ~ [d4,ab4] ~@2 bb3 ~@2 bb1@2 bb3 ~@2, ab3 ~@4 bb2@3 ~@3 ab3 ~@4", // Ddim
  I: "g2@3 eb4 ~ bb2@3 eb4 ~@2 gb2@2 bb3 ~@2, bb3 ~@4 bb4 ~@5 a3 ~@4",
  J: "bb1@3 bb3 ~ [d4,ab4] ~@2 bb3 ~@2 bb1@2 bb3@3, ab3 ~@4 bb2@3 ~@3 ab3 ~@4", // Ddim
  K: "[eb2,g3,eb4,g4] ~@10 [g4,bb4,eb5]@5", // Eb
  L: "[~@11 [eb4,g4,c5]@5 [d4,f4,bb4]@5 ~@6 [c3,eb4,ab4]@5 bb2@5 ~@6 [ab3,d4,f4]@5 [g3,eb4,bb4]@5 ~@6 [g2,bb3,eb4]@5 ~@11 [eb2,g3,eb4]@5, [f4,ab4,d5]@11 ~@21 [eb4,g4]@11 ~@21 [f2,ab3,d4]@11 ~@5, ~@5 bb3@15 ~@7 eb3@10 bb3@16 ~@6 bb2@10 bb2@11]/5", // Cm Bb Ab Ddim Eb Ddim Eb Ddim
  M: "[g3,bb4]@5 [f3,ab4]@5 ~ [a2,g3,eb4,g4]@5, [ab2,c4]@11 ~@5", N: "[bb2,g3]@3 a3@2 bb3@3 a3@3 bb3@2 a3@3, [eb4,g4]",
  O: "[[bb3,d4,f4]@5 ~@6 [g3,bb4,eb5]@5 d5@5 bb5 ~@5 [eb3,g4,c5]@5, ~@11 bb3@15 ~@6, ~@16 [f3,ab4]@11 ~@5]/2", // Bb Eb Cm Fm
  P: "[d3@3 eb3@2 f3@3 eb3@3 d3@2 c3@3 bb2@5 bb3 ~@5 [ab2,d3,f4]@5 [g2,eb3,bb4]@5 ~@6 [c3,g3]@5 d3@3 f2@2 d3@3 ~@3 bb3@2 d4@3 [d4,f4]@5 [eb4,g4] ~@5 [eb4,a4]@3 ~@2, [f4,bb4]@5 bb3@5 ~ eb4@15 ~ bb3@10 ~@6 bb3@16 ~@5 f2@15 ~, ~@11 ab4@5 g4@10 ~@22 f3@8 f3@23 ~]/5", // Ddim Eb C5 Dm Eb Ebdim Bb5
  Q: "~@5 bb2@3 ~@3 f2@3 ~@2, [eb4,a4]", R: "[d4,bb4]@3 ~@13, bb1 ~@15",
  S: "ab3@3 bb3@2 [d4,ab4]@3 bb3@3 ab3@2 bb3@3, f2@5 bb2@5 ~ bb1@5", // Ddim
  T: "ab3@3 bb3@2 [f4,ab4]@3 bb3@3 ab3@2 bb3@3, d2@5 bb2@5 ~ bb1@5", // Fm
  U: "bb3@3 bb3@2 g4@3 bb3@3 f4@2 bb3@3, g2@5 bb2@5 ~ ab2@5",
  V: "eb4@3 bb3@2 bb4@3 bb3@3 a3@2 bb3@3, g2@5 bb2@5 ~ gb2@5",
  W: "[ab3@3 bb3@2 [d4,ab4]@3 bb3@3 ab3@2 bb3@3 [eb2,g3,eb4,g4]@3 ~@13, bb1@5 bb2@13 ~@14, ~@11 bb1@5 ~@16]/2", // Ddim Eb
  X: "~@5 c4@5 ~ [f2,a3]@5, a2@11 ~@5, ~@5 [f3,eb4,f4]@11", Y: "~@5 d4@5 ~ [d3,f4]@5, bb2@11 ~@5, ~@5 [f3,bb3]@11",
  Z: "~@5 bb3@5 ~ [eb3,a3]@5, c3@11 ~@5, ~@5 [f3,eb4,f4]@11", AA: "~@11 [db3,e4]@5, d3@11 ~@5, ~@5 [f3,bb3,f4]@11",
  AB: "~@5 bb3@5 ~ [f2,a3]@5, c3@11 ~@5, ~@5 [f3,eb4,f4]@11", // F F7
  AC: "[[c3,a3,eb4]@5 [bb3,d4]@5 ~ [d2,c4,gb4]@5 [g2,bb3,g4]@3 bb3@2 a3@3 ab3@3 g3@2 gb3@3, ~@5 d3@13 ~@14]/2", // Adim Bb D7 Gm
  AD: "f3@3 c4@2 [eb4,f4]@3 c4@3 f3@2 a3@3, a2@5 f3@5 ~ f2@5", // Ebsus2
  AE: "f3@3 bb3@2 [d4,f4]@3 bb3@3 f3@2 bb3@3, bb2@5 f3@5 ~ d3@5", // Dm
  AF: "f3@3 bb3@2 [eb4,f4]@3 bb3@3 f3@2 a3@3, c3@5 f3@5 ~ eb3@5", // Ebsus2
  AG: "f3@3 bb3@2 f4@3 bb3@3 e4@2 bb3@3, d3@11 db3@5, ~@5 f3@11",
  AH: "~@3 a3@2 [eb4,f4]@3 a3@3 f3@2 a3@3, c3@5 f3@5 ~ f2@5", // Ebsus2
  AI: "g3@3 a3@2 [d3,bb3,d4]@5 ~ [d2,c4,d4,gb4]@5, [c3,eb4]@5 ~@11", AJ: "[g2,bb3,d4,g4]@3 c4@2 b3@3 bb3@3 a3@2 ab3@3",
  AK: "[eb2,g3,eb4,g4] ~@10 [c4,g4,c5]@5", AL: "[c3,ab4,b4]@5 [ab3,d4,f4]@5 ~ [g3,c4,eb4]@5",
  AM: "[f2@5 c3@5 ~@6 b3@5 [f3,d4]@5 ~ [eb3,c4]@5 [ab3,f4]@5 [f3,d4]@5 ~ [eb3,c4]@5, [c4,f4]@15 ~ g2@31 ~, ~@11 d3@10 ~@27]/3", // Dm Cm Db Dm Cm F5
  AN: "d3@5 f2@5 ~ [eb2,c4]@5, b3@11 ~@5, ~@5 g3@11", AO: "~@5 [d2,ab3,c4]@5 ~ [g2,f3,b3]@5",
  AP: "~@5 [c2,g2]@5 ~ [c2,g2]@5, ~@5 [eb3,c4]@3 ~@3 [eb3,c4]@3 ~@2", // C5 Cm
  AQ: "[c2,g2]@5 ~@8 c3@3, [eb3,c4]@3 ~@8 [g3,eb4,g4]@5", // C5 Cm
  AR: "f3@3 c3@2 ab3@3 c3@3 g3@2 c3@3, [b3,ab4]@5 [d4,f4]@5 ~ [c4,eb4]@5", // E Dm Cm
  AS: "f3@3 c3@2 f2@3 c3@3 f3@2 d3@3, [d4,bb4]@11 [c4,ab4]@5", // Gm Fm
  AT: "[g2@3 g3@2 gb3@3 g3@3 f3@2 g3@3 eb3@3 g3@2 d3@3 g3@3 c3@2 g3@3, [b3,g4]@10 ~ g4@10 g4@11, ~@11 d4@5 c4@5 f4@5 ~ eb4@5]/2", // Em
  AU: "[d4,g4]@3 g3@2 b3@3 g3@3 c4@2 g3@3, b2@5 f2@5 ~ eb2@5", AV: "[c2,g2]@5 ~@11, [eb3,c4]@3 ~@13",
  AW: "~@5 [bb2,eb3,g3,db4]@5 ~ [bb2,eb3,g3,db4]@5", AX: "[bb2,eb3,g3,db4]@5 ~@11",
  AY: "g3@3 db4@2 [eb4,g4]@3 db4@3 g3@2 eb4@3, [eb2,db3]@5 eb3@5 ~ db3@5", // Eb Eb7
  AZ: "ab3@3 c4@2 [eb4,ab4]@3 c4@3 ab3@2 c4@3, c3@5 eb3@5 ~ c3@5", // Ab5
  BA: "bb3@3 eb4@2 [bb4,db5]@3 eb4@3 db4@2 eb4@3, g2@5 eb3@5 ~ g2@5", // Bbm
  BB: "c4@3 eb4@2 [ab4,c5]@3 eb4@3 c4@2 ab3@3, ab2@5 eb3@5 ~ ab2@5", // Ab
  BC: "g3@3 bb3@2 [eb4,g4]@3 bb3@3 g3@2 bb3@3, db3@5 eb3@5 ~ db3@5", // Eb
  BD: "c4@3 eb4@2 c5@3 ab4@3 g4@2 gb4@3, ab2@5 eb3@5 ~ eb3@5",
  BE: "c4@3 eb4@2 [f4,c5]@3 eb4@3 c4@2 eb4@3, a2@5 f3@5 ~ a2@5", // F5
  BF: "db4@3 f4@2 [bb4,db5]@3 f4@3 bb3@2 f4@3, bb2@5 f3@5 ~ db3@5", // Bbm
  BG: "c4@3 eb4@2 [ab4,c5]@3 eb4@3 c4@2 eb4@3, eb3@10 ~ eb3@5", BH: "bb3@3 f4@2 bb4@3 f4@3 bb3@2 f4@3, db3, f3@11 g3@5",
  BI: "[c3,g3,e4]@3 ~@2 [f3,c4,f4]@5 ~ [ab3,bb3,d4]@5", BJ: "g3@5 eb3@5 ~ [c3,a3]@5, eb4, bb3@11 ~@5",
  BK: "[bb3@3 a3@2 bb3@3 a3@3 bb3@2 a3@3 [bb3,d4]@5 ~@11, bb2@5 ~@3, eb4 ~]/2", // Bb
  BL: "g3@3 bb3@2 [eb4,g4]@3 bb3@3 g3@2 bb3@3, e2@5 bb2@5 ~ bb1@5", BM: "[eb2,g3]@3 ~@13",
  BN: "[eb2,bb2] ~@2 bb3 ~ [eb4,g4,bb4] ~@2 bb3 ~@2 g3 ~ bb3 ~@2, g3@3 ~@13", // Eb5 Eb
  BO: "[f2,bb2,ab3] ~@2 bb3 ~ [d4,ab4,bb4] ~@2 bb3 ~@2 ab3 ~ bb3 ~@2", // Bb7
  BP: "[bb1,bb2,ab3] ~@2 bb3 ~ [d4,ab4,bb4] ~@2 bb3 ~@2 ab3 ~ bb3 ~@2", // Bb7
  BQ: "[eb2,bb2,g3] ~@2 bb3 ~ [eb4,g4,bb4] ~@2 bb3 ~@2 g3 ~ bb3 ~@2", // Eb
  BR: "ab3@3 bb3@2 [d4,ab4]@3 bb3@3 ab3@2 bb3@3, f2, ~@5 bb2@10 ~", // Ddim
  BS: "[~@5 [bb2,d4,ab4]@15 ~@7 [b3,f4,ab4,d5]@5, bb1@21 ~@11, ab3@9 ~@7, ~@3 bb3@18 ~@11]/2", // Bb7 Bdim
  BT: "[[d4,ab4,b4]@16 [eb4,g4,c5]@5 ~@6 [db4,eb4,g4,bb4]@5, c4@21 ~@11]/2", // Abdim Cm Eb7
  BU: "[[c4,eb4,ab4,eb5]@20 ~@7 [db3,g3,bb4]@5 [c3,ab3,ab4]@5 ~@6 [ab3,f4]@5 [f3,ab4]@5 ~@16 bb2@3 ~@3 bb1@3 ~@2 [g3,eb4]@5 ~@11, ~@27 eb4@10 ~@6 [c4,eb4]@10 ~@6 bb3@26 ~@11, ~@59 [ab3,d4]@21 eb2@3 ~@13, ~@4 f4 ~]/6", // Ab Gdim Fm Db Fm Cm Abdim
})).s("gm_piano").gain(0.2)

stack(piano)

More by Fritz Kreisler