Strudelify

Piano Sonata No. 11 K. 331 (Turkish March)

W. A. Mozart

KeyA majorTempo120 bpm
0:00/0:00
// Piano Sonata No. 11 K. 331 (Turkish March) — W. A. Mozart
// 120 bpm, 2/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 2/4 at bar 2, 1/4 at bar 25, 2/4 at bar 26, ...) are rendered on a constant 2/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/3632791; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/2)

// 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@2 B A C@2 D E F G H I J K L M A@2 B N O P Q R S@2 T U S@2 V W X Y Z AA X Y AB AC AD AE AD AF AD AG AH AI AJ AK AJ
  AL AJ AK AM AN AD AE AD AO AP AQ AR AS AT AU AV AW AX AY AZ BA S@2 T U S@2 V BB A@2 B A C@2 D E F G H I J K L M A@2 B
  N O P Q R S@2 T U S@2 V BC BD BE BF BG BD BE BH BI S@3 BJ S U S@3 BJ S U BK@4 BL BK BM S@3 BJ S U BN BO BP BQ BR BS
>`.pickRestart({
  A: "[a2,e3,a3]@2 [e4,a4,c5,e5] ~ [e4,a4,c5,e5] ~ [e4,a4,c5,e5] ~", // A5 Am
  B: "[a2,e3,a3] ~ [e4,a4,c5,e5] ~ [a2,e3,a3] ~ [e4,a4,c5,e5] ~", // A5 Am A5 Am
  C: "[e2,b2,e3]@2 [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~", D: "[e2,b2,e3] ~ [b3,e4,b4] ~ [b1,b2] ~ [b3,b4] ~",
  E: "[e2,e3,e4] ~", F: "[c2,c3] ~ [c4,c5] ~ [e2,e3] ~ [e4,e5] ~", G: "[g2,g3,g4]@2 [c5,e5] [d5,f5]",
  H: "[c3,e5,g5]@2 [c4,e5,g5]@2 a5 g5 f5 e5, ~@2 e3 e4", I: "[g3,b4,d5] ~",
  J: "[a1,a2] ~ [a3,a4] ~ [c2,c3] ~ [c4,c5] ~", K: "[e2,e3,e4]@2 [a4,c5] [b4,d5]",
  L: "[a2,c5,e5]@2 [a3,c5,e5]@2 f5 e5 d5 c5, ~@2 c3 c4", M: "[e3,g#4,b4] ~",
  N: "[g2,g3]@2 [d#4,a4,d#5] ~ [d#4,a4,d#5] ~ [d#4,a4,d#5] ~", O: "[e2,e3] ~ [a3,e4,a4] ~ [d2,d3] ~ [b3,f4,b4] ~",
  P: "[c2,c3] ~ [a3,e4,a4] ~ [d2,d3] ~ [b3,f4,b4] ~", // C A5 D Bdim
  Q: "[e2,e3,a3,a4] ~ [e2,e3,a3,a4] ~ [e2,e3,g#3,g#4] ~ [e2,e3,g#3,g#4] ~", R: "[a1,a2,a3,a4] ~",
  S: "a2 [c#3,e3] a3@2 [a3,a4]@4 [a3,a4]@4 [a3,a4]@4, a4 ~@3", // C#m A
  T: "d2 [f#2,a2] d3@2 [d3,d4]@4 d#2 [f#2,a2] d#3@2 [d#3,d4]@4, d4 ~ d4 ~", // F#m D F#m D#maj7
  U: "e2 [g#2,b2] e3@2 [e3,e4]@4 [e3,e4]@4 [e3,e4]@4, e4 ~@3", // G#m E
  V: "d2 [f#2,a2] d3@2 [d3,d4]@4 e2 [g#2,b2] e3@2 [e3,e4]@4, d4 ~ e4 ~", W: "[a2,a4]@2 [a4,a5] [b4,b5]",
  X: "a2 [c#3,e3] a3@2 a3@4 [a3,a4,a5]@4 [a3,b4,b5]@4, [c#5,c#6] ~", // C#m A Asus2 C#
  Y: "a2 [c#3,e3] a3@2 [a3,b4,b5]@4 [a3,a4,a5]@4 [a3,a4,g#5]@4, [c#5,c#6] ~@3", // C#m Asus2 A Amaj7 C#
  Z: "d2 [f#2,a2] d3@2 [d3,g#4,g#5]@4 d#2 [f#2,a2] d#3@2 [d#3,b4,b5]@4, [f#4,f#5] ~ [a4,a5] ~", // F#m Ddim F#m G#m F# A
  AA: "e2 [g#2,b2] e3@2 [e3,e4,e5]@4 [e3,a4,a5]@4 [e3,b4,b5]@4, [g#4,g#5] ~@3", // G#m E A5 E5 G#
  AB: "d2 [f#2,a2] d3@2 [d3,b4,b5]@4 e2 [g#2,b2] e3@2 [e3,e4,e5]@4, [f#4,f#5] ~ [g#4,g#5] ~", AC: "[a2,a4,a5] ~",
  AD: "[f#2,f#3] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~", // F# F#m
  AE: "[g#2,g#3] ~ [c#4,g#4,b4] ~ [c#4,g#4,b4] ~ [c#4,g#4,b4] ~", // G# C#7
  AF: "[f2,f3] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~", // F C#
  AG: "[g#2,g#3] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~", // G# C#m
  AH: "[g#2,g#3] ~ [d#4,f#4,g#4] ~ [d#4,f#4,g#4] ~ [d#4,f#4,g#4] ~", AI: "[c#4,e4] ~", AJ: "a3 [c#4,e4]!3",
  AK: "b3 [d4,e4] g#3 [d4,e4]", AL: "e3 [g#3,d4]!3", AM: "a3 f#3 d3 e3", AN: "a2 a3 ~@2",
  AO: "[c#3,c#4] ~ [c#4,g#4,c#5] ~ [c#4,g4,c#5] ~ [c#4,f#4,c#5] ~", // C# C#5 C#dim F#5
  AP: "b2 ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~", AQ: "b2 ~ [b3,g#4,b4] ~ [b3,g#4,b4] ~ [b3,g#4,b4] ~",
  AR: "c#3 ~ [c#4,f#4,a4] ~ [c#2,c#3] ~ [c#4,g#4,b4] ~", AS: "[f#2,f#3,c#4,f#4,a4]@4 c#6 d6 c#6 b5",
  AT: "a5 b5 a5 g#5 f#5 a5 g#5 f#5, f#3 [a3,c#4]!3", AU: "f5 f#5 g#5 f5 c#5 d#5 f5 c#5, g#3 [b3,c#4]!3",
  AV: "f#5 f5 f#5 g#5 a5 g#5 a5 b5, f#3 [a3,c#4]!3", // A
  AW: "c#6 c6 c#6 c6 c#6 c6 c#6 a#5, c#3 [g#3,c#4] [f#3,c#4] [f3,c#4]", // C#5 F#5 C#
  AX: "d6 c#6 d6 c#6 d6 c#6 d6 c#6, b2 [f#3,b3]!3", AY: "d6 c#6 b5 a5 g#5 a5 b5 g#5, b2 [g#3,b3]!3",
  AZ: "a5 b5 c#6 f#5 f5 f#5 g#5 f5, c#3 [f#3,a3] c#3 [g#3,b3]", BA: "[f#3,a3,f#5] ~", BB: "[a2,a3] ~",
  BC: "[a2,a3,a4]@4 a4 a5 b4 b5", BD: "a2 [c#3,e3] [a3,c#6]@2 a3@4 a4@2 a5@2 b4@2 b5@2, c#5 ~@3 a3@2 a3@2",
  BE: "a2 [c#3,e3] [a3,c#6]@2 b4@2 b5@2 a4@2 a5@2 g#4@2 g#5@2, c#5 ~ a3@2 a3@2 a3@2", // C#m A
  BF: "d2 [f#2,a2] [d3,f#5]@2 g#4@2 g#5@2 d#2 [f#2,a2] [d#3,a5]@2 b4@2 b5@2, f#4 ~ d3@2 a4 ~ d#3@2", // F#m D F#m D#dim
  BG: "e2 [g#2,b2] [e3,g#5]@2 e4@2 e5@2 a4@2 a5@2 b4@2 b5@2, g#4 ~ e3@2 e3@2 e3@2", // G#m E
  BH: "d2 [f#2,a2] [d3,f#5]@2 b4@2 b5@2 e2 [g#2,b2] [e3,g#5]@2 e4@2 e5@2, f#4 ~ d3@2 g#4 ~ e3@2", // F#m D G#m E
  BI: "a2 [c#3,e3] a3@2 a3@4 a3@4 a3@4, [a4,a5] c#5", BJ: "d2 [f#2,a2] d3@2 [d3,d4]@4 [d3,d4]@4 [d3,d4]@4, d4 ~@3",
  BK: "a3 e4 c#4 e4 a3 e4 c#4 e4", BL: "a3 f#4 d4 f#4 a3 f#4 d4 f#4", BM: "e3 e4 [g#3,b3] e4 e3 e4 [g#3,b3] e4",
  BN: "a2 [c#3,e3] a3@2 a3@4 a3@4 [a3,c#5]@4, [a4,c#5,e5]@3 ~", BO: "a2 [c#3,e3] a3@2 a3@4 a3@4 [a3,e5]@4, a4@3 ~",
  BP: "a2 [c#3,e3] a3@2 a3@4 a3@4 [a3,c#5]@4, a4@3 ~", // C#m A
  BQ: "a2 [c#3,e3] a3@2 a3@4 a2 [c#3,e3] a3@2 a3@4, a4 ~ c#5 ~ a4 ~ e5 ~", BR: "[a2,a4] ~ [a2,c#3,e3,a3,a4,c#5,e5]@2",
  BS: "[a2,c#3,e3,a3,a4,c#5,e5] ~", // A
})).s("gm_piano").gain(0.2)

stack(piano)

More by W. A. Mozart