Strudelify

Divertimento in Bb

W. A. Mozart

KeyF majorTempo130 bpm
0:00/0:00
// Divertimento in Bb — W. A. Mozart
// 130 bpm, 3/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 100) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5871078; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 262 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 D E F G H I J K L M N@2 O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI@3 AJ AK@2 AL AM AN AO AP AQ AR AS
  AT@2 AU AV@2 AW AX@2 AY AZ BA BB@2 BC BD BE BF@2 BG BH BI BJ BK BL BM Z BN ~ BO BP BQ@2 BR BS BT BU BV@2 BW BX BY BZ
  CA CB CC CD CE ~@4 CF CG CH@2 CI CJ CK CL CM CL CN CO ~ CF CG CH@2 CI CJ CK CL CM CL CN CO CP CQ CR@3 CS@2 CT CU CV CW
  CX CY CZ DA DB DC DD DE DF DG CP CQ CR@3 CS@2 CT CU CV CW CX CY CZ DA DB DC DD DE DF DG DH DI DJ DK DL DM DN DO DP DQ
  DR DS DH DI DJ DK DL DM DN DO DP DQ DR DS DT DU DV DW DX DY DZ EA@2 EB EC ED EE EF EG EH EI EJ EK EL EM EN EO EP ~ CF
  CG CH@2 CI CJ CK CL CM CL CN CO ~ CF CG CH@2 CI CJ CK CL CM CL CN CO CP CQ CR@3 CS@2 CT CU CV CW CX CY CZ DA DB DC DD
  DE DF DG
>`.pickRestart({
  A: "~@5 [bb2,d4,bb4]@3 ~@5 [f2,f4] ~@2", B: "[bb2,d4,bb4]@3 ~@5 [f2,f4] ~@2 [bb2,bb4] ~ [d3,d5] ~@2",
  C: "[f3,f5] ~@2 [d3,d5] ~ [bb2,bb4]@3 ~@8", D: "bb2 ~@2 bb3 ~ bb3 ~@2 bb3 ~@2 bb3 ~ bb3 ~@2, f4@5 g4@11",
  E: "bb3 ~@2 bb3 ~ [f3,f4]@3 eb4@3 f3@2 c4 ~@2, f4@5 ~@6 eb4 ~@4", // F
  F: "d4@3 bb3@2 f3@3 d3@3 bb2 ~ bb3 ~@2, bb2 ~@10 d5@5", G: "bb3 ~@2 bb3 ~ bb3 ~@2 bb3 ~@2 bb3 ~ bb3 ~@2, eb5@11 d5@5",
  H: "[f3,d5]@3 c5@2 f3@3 a4 ~@2 bb4@2 bb3@3, ~@5 c5 ~@5 bb2 ~@4", // Dm
  I: "f3@3 d3@2 bb3 ~ d4 f4@3 f4 ~ f4 ~@2, ~@5 bb2@5 ~@6", J: "d3@3 d4@2 d4 ~@2 gb4@3 c4 g4 c5@3, f4@8 d4 ~@2 eb3@5",
  K: "c5 ~@2 c5 ~ eb3@3 eb4@3 eb4 ~ eb4 ~@2, ~@5 a4@10 ~",
  L: "[d4,f4,bb4]@3 ~@2 [eb3,c4,c5]@3 ~@3 [f3,d4,f4,bb4]@3 ~@2", // Bb Cm Bb
  M: "[f2,c4,f4,a4]@3 ~@2 [bb2,bb3,d4,bb4] ~@5 d4 ~ bb3 ~@2", // F Bb
  N: "[g3@5 bb3 ~@2 g3 ~@2 eb3@5 g3 ~@2 eb3 ~ [f3,d4,bb4]@5 ~ a3 ~ f3 ~@2, ~@5 [d4,bb4]@5 ~ [g4,bb4]@10 ~@6 [eb4,c5]@5]/2", // Bb Gm Cm
  O: "[bb3,eb4,c5]@5 ~@3 bb3 ~@2 g3@5, ~@5 [d4,bb4]@5 ~@6", // Cm7 Gm
  P: "d5@3 g3 ~ [g4,eb5]@3 ~@3 [g4,bb4]@2 eb3 ~@2, bb3 ~@4 eb3@5 ~ g3 ~@4", // Cm Gm
  Q: "[f4,a4]@3 ~@2 [a4,c5]@3 f3 ~@2 [bb3,d4,bb4]@5, f3@5 a3 ~@10", R: "~@5 eb3@5 ~ g3 ~ eb3 ~@2",
  S: "[c3,c4,eb4]@5 ~@6 f3@5", T: "a3 ~@2 f3 ~ [d3,d4,f4]@5 ~@6", U: "g3@5 bb3 ~@2 g3 ~@2 [eb3,eb4,g4]@5",
  V: "~@5 c3@5 ~ eb3 ~ c3 ~@2", W: "[a2,a4]@3 [f2,f3]@2 [g2,g3]@3 [a2,a3]@3 [bb2,bb3]@2 [a2,a3]@3",
  X: "[bb2,bb3]@3 [c3,c4]@2 [d3,d4]@3 [c3,c4]@3 [bb2,bb3]@2 [c3,c4]@3", // Bb C D C Bb C
  Y: "[d3,d4]@3 [c3,c4]@2 [d3,d4]@3 [e3,e4]@3 [f3,f4]@3 ~@2", // D C D E F
  Z: "f2 ~@2 f3 ~ [bb4,d5]@3 f3 ~@2 [f2,d4,f4,bb4] ~ f3 ~@2, [c5,eb5]@5 f2 ~@10", // Bb Cm
  AA: "[f2,c4,f4,a4] ~@2 f3 ~ f2 ~@2 f3 ~@2 [bb4,d5]@2 f3 ~@2, ~@5 [c5,eb5]@5 ~ f2 ~@4", // F Bb Cm
  AB: "[f2,d4,f4,bb4] ~@2 f3 ~ [f2,c4,f4,a4]@3 ~@3 [f3,c4,f4,a4]@5", AC: "[f2,c4,f4,a4]@5 ~@11",
  AD: "~@5 [d4,f4,b4]@11", AE: "[e4,c5]@5 [g3,c4]@3 ~@3 [e3,c4,g4]@3 ~@2, c4@3 ~@13", AF: "c3@3 ~@13",
  AG: "[e3,c5,g5]@11 [f3,c5,f5]@3 ~@2", AH: "[c3,g4,c5,e5]@3 ~@2 [a2,f4,c5,f5]@3 ~@3 f2@3 ~@2",
  AI: "[~@11 [bb3,d4]@10 bb3@11 a3@11 bb3@5, ~@21 c4@20 ~@7]/3", AJ: "~@5 [bb3,d4]@11",
  AK: "[bb3@11 a3@10 bb3@5 ~@3 bb4 ~@2, c4@20 ~@7 bb2@5]/2",
  AL: "bb4@3 a4@2 a4@3 g4@3 [a3,f4]@2 c4@3, c3@5 c3@5 ~ f3@5", AM: "a3@3 c4@2 a3@3 c4@3 a3@2 c4@3, ~@5 f2@5 ~@6",
  AN: "g3@3 c4@2 g3@3 c4@3 [c3,g3]@2 c4@3, e3@5 ~@11", AO: "g3@3 c4@2 [f3,a3]@3 c4@3 a3@2 c4@3",
  AP: "a3@3 c4@2 a3@3 c4@3 [e3,g3]@2 c4@3", AQ: "g3@3 c4@2 [c3,g3]@3 c4@3 g3@2 c4@3",
  AR: "f3@3 ~@2 [c3,bb3,e4] ~@5 [a3,f4] ~@4, a3 ~@10 f3@3 ~@2", // C7 Dm
  AS: "[c3,bb3,e4] ~@4 [a3,f4] ~@5 [f3,f4,a4,c5]@3 ~@2, ~@5 f2@3 ~@8", // C7 Dm F
  AT: "[[f2,f4,a4]@3 ~@8 [f3,f4]@10 [ab3,ab4]@11]/2", AU: "[b2,b3]@3 ~@2 [c3,c4]@3 ~@8",
  AV: "[~@5 g4@5 ~ ab4@10 g4@5 ~ [g2,g4]@2 f4@3]/2", AW: "g3@3 g4 ~ eb4@5 ~@6, f4 ~@4 c3@3 ~@8",
  AX: "[[eb3,eb4]@11 [gb3,gb4]@10 [a2,a3]@3 ~@3 [bb2,bb3]@3 ~@2]/2", AY: "~@11 f4@3 ~@2", AZ: "g4@11 f4@5",
  BA: "[f2,f4]@3 eb4@2 f3@3 f4 ~@2 d4@5, ~@5 eb4 ~@5 bb2@3 ~@2", // F
  BB: "[~@5 g3@5 ~ [ab3,c4]@10 [g3,bb3]@5 ~ [g3,bb3]@2 [f3,ab3]@3, ~@5 bb3@3 ~@24]/2", // Ab Gm Fm
  BC: "[f3,ab3] ~@2 [d3,f3] ~ [eb3,g3]@5 ~@6", BD: "~@3 eb2 ~ g2 ~@2 bb2 ~@2 [eb3,eb5]@2 d5@3, eb5@11 ~@5",
  BE: "eb5@3 d5@2 c5@3 b4@3 c5@2 b4@3, ~@5 g3@11",
  BF: "[g3@3 gb3@2 g3@3 [f3,b4]@3 c5@3 ~@2 [db4,g4]@3 ~@2 [c4,g4]@3 ~@3 [bb3,g4]@3 ~@2, c5@8 ~@3 eb3@10 e3@10 ~]/2", // Fdim Dbdim C5 Eb
  BG: "[a3,f4]@3 ~@10 e3@3, f3 ~@4 f3@8 ~@3, ~@11 f4@5", // Dm
  BH: "f3@3 eb3@2 [d3,f5]@3 [db3,e5]@3 [d3,f5]@2 [c3,eb5]@3, f5@5 ~@11", // Dm Dbm Dm Cm
  BI: "d5@3 e5@2 f5@3 e5@3 f2@5, bb2@5 g2@5 ~ f5@3 ~@2", BJ: "f3@5 ~@3 e3@3 f3@2 eb3@3, ~@11 [c4,f4,a4]@5",
  BK: "db3@3 c3@2 db3@3 c3@3 ~@2 e4@3, [bb3,f4,bb4]@5 ~@6 bb2@5", // Bb5
  BL: "f4@3 e4@2 f4@3 f3 ~@2 f2 ~ f3 ~@2, gb2@5 f2 ~@5 [f4,c5,eb5]@5", // F7
  BM: "[f2,f4,bb4,d5] ~@2 f3 ~ [f2,d4,f4,bb4] ~@2 f3 ~@2 [f2,c4,f4,a4] ~ f3 ~@2", // Bb F
  BN: "[f2,c4,f4,a4]@3 ~@2 [f3,a4,c5,f5]@5 ~ [f2,a4,c5,f5]@5", BO: "[g3,bb4,e5]@11 [c5,f5]@5, ~@11 f3@3 ~@2",
  BP: "[c3,g4,e5]@3 ~@2 [a2,f4,c5,f5]@3 ~@3 d2@3 ~@2", BQ: "[~@11 [a3,f4,c5]@10 [bb3,f4,bb4]@3 ~@3 [f3,c4,a4]@3 ~@2]/2",
  BR: "[d3,bb3,f4,bb4]@3 ~@2 bb2@3 ~@8", BS: "~@5 [eb3,g3,c4]@11", BT: "[eb3,g3,c4]@11 [d3,f3,bb3]@5",
  BU: "~@5 bb3@5 ~@6", BV: "[[eb4,g4,c5]@11 [eb4,g4,c5]@10 [f4,bb4]@5 ~ f4@5, ~@21 d4@11]/2",
  BW: "g4@5 [eb3,g3]@3 ~@3 [f3,bb3,bb4]@2 d5@3, ~@5 c5@5 ~@6", BX: "[f2,c5]@3 a4@2 [bb2,bb4]@3 f4@3 d4@2 f4@3",
  BY: "[f2,d4]@3 f4@2 d4@3 f4@3 [c3,c4,eb4]@2 f4@3", BZ: "eb4@3 f4@2 [f2,c4]@3 eb4@3 c4@2 eb4@3",
  CA: "[bb2,bb3,d4]@3 f4@2 d4@3 f4@3 d4@2 f4@3", CB: "d4@3 f4@2 [c3,c4,eb4]@3 f4@3 eb4@2 f4@3",
  CC: "[f2,c4]@3 eb4@2 c4@3 eb4@3 [bb3,d4] ~@4, ~@11 bb2@3 ~@2", // F5 Bb
  CD: "[f2,a3,eb4] ~@4 [bb3,d4] ~@5 [f2,a3,eb4] ~@4, ~@5 bb2@3 ~@8", // F7 Bb F7
  CE: "[bb3,d4] ~@4 [bb2,d4,f4]@3 ~@3 [bb1,f3,bb3,d4]@3 ~@2, bb2@3 ~@13", CF: "[bb2,d3,f3,bb3]@5 ~@3",
  CG: "[eb3,f3,a3]@5 ~@3", // F7
  CH: "[d3@5 [c3,a3]@5 ~ [bb2,bb3]@5 bb3@5 a3@5 ~ [a3,c4]@3 ~@2, ~@5 f3@21 ~@6, ~@8 f2@5 ~@3]/2", // F Bb Am
  CI: "[bb3,d4]@5 [g3,bb3,e4]@3 ~@3 [a3,c4,gb4]@3 ~@2", CJ: "[bb3,d4,g4]@3 ~@2 [bb3,d4,g4]@3 ~@8",
  CK: "[c3,g3,bb3,e4]@3 ~@2 [c3,g3,bb3,e4]@3 ~@8", CL: "a3@3 c4@2 a3@3 c4@3 a3@2 c4@3, [f2,f3]@5 ~@11",
  CM: "bb3@3 d4@2 bb3@3 d4@3 bb3@2 d4@3, [f2,f3]@5 ~@11", CN: "bb3@3 d4@2 bb3@3 d4@3 bb3@2 d4@3, c3@5 ~@11",
  CO: "[f2,a3]@5 ~@11", CP: "~@11 [f3,f4]@3 ~@2", CQ: "[c3,c4]@5 [b2,b3]@5 ~ [f3,f4]@3 ~@2",
  CR: "[ab3@5 g3@5 ~@6 g2@5 [a2,eb5]@5 ~ b2@5 ~@8 d3@3 [eb3,bb4]@5, ~@11 f5@10 ~@6 d5@10 c5@5 ~@6, ~@4 c3 ~]/3", // Adim Eb5
  CS: "[[f3,a4]@5 [g3,bb4]@5 ~ a3@5 ~@8 c4@3 [d4,ab4]@5, ~@11 c5@10 bb4@5 ~@6, ~@2 bb3 ~]/2", CT: "g4@11 eb4@3 ~@2",
  CU: "d4@5 c4@5 ~@6, f3@3 ~@2 f2@3 ~@8", CV: "[bb2,f3,bb3]", CW: "a2@11 d3@5, [gb3,a3]",
  CX: "[g2,g3]@3 ~@2 [c3,a3]@3 ~@3 [bb2,bb3]@3 ~@2", CY: "bb3@5 a3@5 ~ [f2,c4,a4]@3 ~@2, [f2,f3]@5 ~@3",
  CZ: "[bb2,d4,bb4]@3 ~@2 [c3,eb4,bb4]@3 ~@3 [d3,f4,bb4]@3 ~@2", DA: "[eb3,g4]@5 [f3,f4]@5 ~ [g3,eb4]@5, bb4",
  DB: "[f3,d4,bb4]@5 f2@5 ~ [f3,a3,c4]@5", DC: "[bb3,d4]@3 f4@2 d4@3 f4@3 d4@2 f4@3, bb2@5 ~@11",
  DD: "eb4@3 f4@2 eb4@3 f4@3 eb4@2 f4@3, bb2@5 ~@11", DE: "d4@3 f4@2 d4@3 f4@3 d4@2 f4@3, bb2@5 ~@11",
  DF: "eb4@3 f4@2 eb4@3 f4@3 eb4@2 f4@3, f2@5 ~@11", DG: "[bb2,d4]@5 ~@11",
  DH: "f2@3 ~@2 f3@3 ~@3 g4@5, f4@11 f2@3 ~@2", DI: "[f3,a4]@3 ~@2 [bb2,bb4]@3 ~@8",
  DJ: "c3@3 ~@2 c4@3 f4@3 g4@5, e4@8 ~@3 c3@3 ~@2", DK: "[c3,a4]@3 g4@2 f4@5 ~@6, ~@5 f3@3 ~@8",
  DL: "c3@3 ~@2 [g3,bb4]@3 ~@3 [e3,bb4]@3 ~@2", DM: "d3@3 ~@2 [g3,bb4]@3 ~@3 [f4,bb4]@3 ~@2",
  DN: "e4@3 ~@2 [g3,bb4]@3 ~@3 [e4,bb4]@3 ~@2", DO: "d4@3 ~@2 [g3,bb4]@3 ~@3 [f4,bb4]@3 ~@2",
  DP: "e4@3 ~@2 c5@5 ~ b4@5, ~@5 e4@3 ~@3 d4@3 ~@2", DQ: "a4@5 g4@5 ~ gb4@5, c4@3 ~@2 b3@3 ~@3 a3@3 ~@2",
  DR: "g3@3 ~@2 g2@3 g4@3 [g3,f4]@3 ~@2, c5 ~", DS: "[c3,e4]@3 ~@2 c4@3 ~@8", DT: "~@5 [c3,ab4]@5 ~ [eb3,g4]@5",
  DU: "[d3,gb4]@3 ~@2 [g2,g4]@3 ~@8", DV: "~@5 [bb2,g4]@5 ~ [db3,f4]@5", DW: "[c3,g4]@3 ~@2 [f2,f4]@3 ~@8",
  DX: "bb2@5 bb3@5 ~ c5@5, bb4@11 bb3@3 ~@2", DY: "d5@5 eb5@5 ~@6, bb3@3 ~@2 eb3@3 ~@8",
  DZ: "f3@3 ~@2 f2@3 ~@3 f3@3 ~@2, a4@15 ~",
  EA: "[gb3@3 ~@2 gb2@3 bb4@3 gb3@3 ~@2 g3@3 ~@2 g3@3 ~@3 f3@3 ~@2, a4@8 ~@3 c5@10 bb4@10 ~]/2",
  EB: "e3@3 ~@2 e3@3 ~@3 [e3,a4]@2 g4@3, bb4@5 ~@3", EC: "f3@3 ~@2 f3@3 ~@3 g4@5, f4@10 ~ f3@3 ~@2",
  ED: "a4@5 bb4@5 ~@6, f3@3 ~@2 bb2@3 ~@8", EE: "c3@3 ~@2 c3@3 f4@3 g4@5, e4@8 ~@3 c3@3 ~@2",
  EF: "a4@3 g4@2 [f3,f4]@5 ~@6, c3@5 ~@11", EG: "f3@3 ~@2 [c3,f4]@3 ~@3 [a3,c4]@3 ~@2",
  EH: "g3@3 ~@2 [c3,e4]@3 ~@3 [bb3,c4]@3 ~@2", EI: "a3@3 ~@2 [c3,f4]@3 ~@3 [a3,c4]@3 ~@2",
  EJ: "g3@3 ~@2 [c3,e4]@3 ~@3 [bb3,g4]@3 ~@2", EK: "[a3,f4]@3 c4@2 bb3@3 a3@3 [g3,a4]@2 f3@3",
  EL: "c5@3 f3@2 e3@3 d3@3 [c3,f4]@2 b2@3", EM: "c3@3 ~@2 c4@3 ~@3 [bb3,e4]@5, f4@11 c3@3 ~@2",
  EN: "[f3,a3,f4]@3 c4@2 [f3,a3]@3 c4@3 [f3,bb3]@2 c4@3", EO: "[f3,a3]@3 c4@2 [f3,a3]@3 c4@3 [f3,bb3]@2 c4@3",
  EP: "a3@5 f2@3 ~@8, f3@3 ~@13",
})).s("gm_piano").gain(0.2)

stack(piano)

More by W. A. Mozart