Strudelify

Flute Quartet in A major K.298

Wolfgang Amadeus Mozart

KeyA majorTempo80 bpm
0:00/0:00
// Flute Quartet in A major K.298 — Wolfgang Amadeus Mozart
// 80 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/2361351; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 161 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/4)

// 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.

// other · flute
const flute = note(`<
  A B C D E B F G H I C D E B F G J K L M N B C O P K L M N B C O P Q R S T U V W X Q R S T U V W Y Z AA AB AC Q R AD AE
  Z AA AB AC Q R AD AF AG@3 AH AI@2 AJ AK AG@3 AH AI@2 AJ AK AL AM AN AO AP@3 AQ AL AM AN AO AP@3 AQ AR AS AT AS AR AS
  AU AV AR AS AT AS AR AS AU AV AS@2 AW AX AR AS AY AZ AS@2 AW AX AR AS AY BA B BB BC BD BE BF BG BH B BB BC BD BE BF BG
  BI BJ BK BL BM BE BB BN BO BJ BK BL BM BE BB BN BP
>`.pickRestart({
  A: "~@3 e4", B: "a4@2 a4 b4 d5 c#5 b4 a4", C: "e5@2 e5 f#5 e5@2 d5@2",
  D: "d5@2 c#5@2 b4@2 a4@2 a4@2 b4 a4 g#4@2 a4@2", E: "b4 e4!3", F: "b4 e5!2 g#5", G: "f#5@2 e5 f#5 g#5@2 f#5@2",
  H: "e5@2 ~ e4", I: "a4@2 a4 b4 c#5@2 a4@2", J: "e5@2 ~ e5", K: "b4@2 b4 c#5 d5@2 b4@2", L: "e5@3 c#5 a4@2 a#4@2",
  M: "b4@2 c#5@2 e5 d5 c#5 b4", N: "a4@3 b4 g#4@2 e4@2", O: "d5 c#5 a4 b4 c#5@2 b4@2", P: "a4@2 ~ e5",
  Q: "a5@2 a4@2 c#5@2 e5@2 a5@2 a5 b5 d6 c#6 b5 a5", R: "b5 c#6 b5 a5 b5@2 c#6@2 d6@6 b5@2",
  S: "d6@2 c#6@2 b5@2 a5@2 b5 a5 g#5 a5 g#5 a5 g#5 a5", T: "b5@5 g#5 a5 f#5 e5@4 ~@2 e5@2",
  U: "a5 a4 c#5 e5 a5 c#6 e6 c#6", V: "b5 e5 f#5 g#5 a5 b5 c#6 d#6 e6@2 d6@2 c#6@2 c6@2",
  W: "c#6@2 d#6 e6 d6 c#6 b5 a5 g#5@4 f#5@4", X: "f#5 e5 ~ e5", Y: "f#5 e5 ~ b5", Z: "a#5 b5 c#6 b5 d6 b5@2 g#5",
  AA: "a5 b5 a5 b5 c#6 d6 c#6 d6 e6@4 a#5@4", AB: "b5@2 b4@2 d5@2 f#5@2 b5@2 c#6@2 e6 d6 c#6 b5",
  AC: "a5@3 b5 g#5@2 e5@2", AD: "c#6@2 d6@2 d#6@2 e6@2 a5@4 c#6 b5 a5 b5", AE: "b5 a5 ~ b5", AF: "b5 a5 ~@2",
  AG: "[e5@17 ~ f5@2 f#5@2 b5@2]/3", AH: "a5 g#5 ~@2", AI: "e6/2", AJ: "~ c#6!2 a5 g#5 ~ f#5 ~", AK: "f#5@2 e5 ~",
  AL: "b5@15 ~", AM: "c#6@15 ~", AN: "d6 e6 f#6 d6", AO: "c#6@4 b5 c#6 d6 d#6",
  AP: "[e6@33 ~@2 c#6 d6@3 b5 a5@2 ~@2 g#5@2 ~@2]/3", AQ: "g#5@2 a5 ~",
  AR: "~@2 c#5@2 c#5@2 e5 [c#5,d5] e5@4 ~@4, ~@8 d5 ~@7", AS: "~@2 g#5@2 g#5@2 b5 [g#5,a5] b5@4 ~@4, ~@8 a5 ~@7",
  AT: "e5 a5", AU: "a5!2 g#5!2 a5!2 f#5!2", AV: "f#5 e5 ~@2", AW: "a5@2 g5@2 f#5 ~ f#5 ~",
  AX: "~@2 g#4@2 g#4@2 b4 [g#4,a4] b4@4 ~@4, ~@8 a4 ~@7", AY: "a5!2 b5!2 a5!2 g#5!2", AZ: "g#5 a5 ~@2",
  BA: "g#5 a5 ~ e4", BB: "e5@3 f#5 e5@2 d5@2", BC: "c#5 e5 f#4 f#5", BD: "c#5@2 b4 e4", BE: "a4@3 b4 d5 c#5 b4 a4",
  BF: "b4@3 e5 e5@2 g#5@2", BG: "f#5 a5 d#5 f#5", BH: "f#5@2 e5 e4", BI: "f#5@2 e5 b4", BJ: "b4@3 c#5 d5@2 b4@2",
  BK: "c#5@3 d5 e5@2 c#5@2", BL: "d5@3 e5 f#5@2 d5@2", BM: "c#5@3 d5 b4@2 e4@2", BN: "c#5 e5 d5 f#5 a4@2 g#4@2",
  BO: "b4@2 a4 b4", BP: "b4@2 a4 ~",
})).s("gm_flute").gain(0.17)

// other · violin
const violin = note(`<
  ~ A B C D E F G H A B C D E F G H I J K L M B N O I J K L M B N O P Q R S T U V W P Q R S T U V W X Y Z AA AB AC AD AE
  X Y Z AA AB AC AD AF AG AH AI AJ AK AL AM AN AG AH AI AJ AK AL AM AO AP AQ AR AS AG AH AT AU AP AQ AR AS AG AH AT AV
  AW AX AY AX AZ BA BB BC BD BE AY BE BF BG BH BC BE BI BJ BK BL BM BN AE BO BP BQ BR BS BE BT AE BU BV BW BX BY BZ CA
  BX BU BV BW BX BY BZ CA BX I CB CC CD BY CE CF CG I CB CC CD BY BV CF CH
>`.pickRestart({
  A: "c#4", B: "b3@3 g#4", C: "a4@2 ~@2 d#4@3 f#4", D: "b3 ~@2 g#3", E: "a3@3 c#4", F: "b3 ~ b4 ~",
  G: "c#5@2 b4 c#5 b4@2 d#5@2", H: "e5 ~", I: "g#4@3 a4 b4@2 g#4@2", J: "a4@2 e4 g4", K: "f#4@2 a#4@2 b4 f#4 e4 d4",
  L: "c#4@3 d4 b3@2 ~@2", M: "c#4@2 a3 c#4", N: "a4 d#4 e4 g#4", O: "a4 ~", P: "c#5@2 ~ c#5",
  Q: "d5@5 c#5 b4 a4 g#4@2 b4@2 e5@2 d5@2", R: "c#5 ~ d#5@2", S: "e5 ~ d#4 ~ e4 b3 c#4 d4", T: "c#4 ~@2 c#5",
  U: "e5@2 ~@3 b3 c#4 d4", V: "c#4 f#5 e5 d#5", W: "d#5 e5 ~@2", X: "f#4@6 g#4 b4", Y: "a4@2 ~@3 g4 f#4 e4",
  Z: "d4@4 ~@8 f#5@2 e5 d5", AA: "c#5@3 d5 b4 d5 c#5 b4", AB: "c#5 ~@2 c#5",
  AC: "d5@4 ~ c#5 b4 a4 g#4@2 b4@2 e5@2 d5@2", AD: "c#5@4 ~@4 e5@4 d5@2 c#5 d5", AE: "d5 c#5 ~@2",
  AF: "d5@4 c#5@4 ~@4 e4 f#4 e4 d4", AG: "c#4 e4 f#4 g#4 a4 g#4 b4 a4 c#5 b4 a4 g#4 f#4 e4 d4 c#4",
  AH: "b3 d#4 e4 f#4 g#4 f#4 a4 g#4 b4 a4 g#4 f#4 e4 d4 c#4 b3",
  AI: "a3 c#4 e4 g#4 a4 b4 a4 g4 f#4 g4 f#4 e4 d4 e4 f#4 d4",
  AJ: "e4 d#5 e5 d#5 e5 f5 f#5 e5 d5 c#5 b4 a4 g#4 f#4 e4 d4",
  AK: "c#4 e4 f#4 g#4 a4 g#4 c#5 b4 a4 g#4 f#4 e4 d4 c#4 b3 a3",
  AL: "g#3 b3 e4 f#4 g#4 f#4 b4 a4 g#4 f#4 e4 d#4 c#4 b3 a3 g#3",
  AM: "a3 c#4 e4 a4 c#4 f#4 a4 c#5 b3 e4 g#4 b4 b3 d#4 f#4 b4", AN: "a4 g#4 f#4 e4 d#4 c#4 b3 a3 g#3@4 e4 f#4 e4 d4",
  AO: "a4 g#4 f#4 e4 d#4 c#4 b3 a3 g#3@4 g#4 a4 g#4 f#4", AP: "e4 d#5 e5 d#5 e5 d#5 e5 d#5 e5 d5 c#5 b4 a4 g#4 f#4 e4",
  AQ: "e4 d#5 e5 d#5 e5 d#5 e5 d#5 e5 d5 c#5 b4 a#4 g4 f#4 e4",
  AR: "d4 d5 b4 a4 g4 e4 a4 g4 f#4 e4 d4 e4 f#4 b4 d5 f#5",
  AS: "e4 d#4 e4 f#4 g#4 a4 b4 c#5 d5 c#5 b4 a4 g#4 f#4 e4 d4",
  AT: "a3 c#4 e4 a4 b3 d4 f#4 b4 c#4 e4 a4 c#5 d4 g#4 b4 d5", AU: "d5 c#5 b4 a4 g#4 f#4 e4 d4 c#4@4 g#4 a4 g#4 f#4",
  AV: "d5 c#5 b4 a4 g#4 f#4 e4 d4 c#4@4 ~@4", AW: "~@2 a4 ~ a4 ~ b4 ~ [b4,c#5]@3 ~@5, ~@8 a4 ~@7",
  AX: "~@2 e5 ~ e5 ~ f#5 e5 g#5@2 ~@6, ~@8 f#5 ~@7", AY: "c#5@3 d#5", AZ: "~@2 a4 ~ a4 ~ b4 a4 [b4,c#5]@3 ~@5",
  BA: "~@2 e5 ~ e5 ~ f#5 e5 f#5@4 ~@4, ~@4 g#5 ~@3", BB: "f#5@2 f#5@2 e5@2 e5@2 c#5@2 c#5@2 d#5 ~@2 d#5",
  BC: "d#5@2 e5 ~@5", BD: "~@2 a4 ~ a4 ~ b4 a4 c#5@2 ~@6, ~@8 b4 ~@7",
  BE: "~@2 e5 ~ e5 ~ f#5 e5 g#5@4 ~@4, ~@8 f#5 ~@7", BF: "~@2 a4 ~ a4 ~ b4 a4 c#5@4 ~@4, ~@8 b4 ~@7",
  BG: "~@2 e5 ~ e5 ~ f#5 e5 [f#5,g#5]@4 ~@4", BH: "f#5 ~ f#5@2 e5 ~ e5@2 c#5 ~ c#5@2 d#5 ~ d#5 ~",
  BI: "~@2 f5 ~ f5 ~ f#5 f5 [f#5,g#5]@4 ~@4", BJ: "c#5@2 d5 [f#4,d5], a4@3 ~",
  BK: "~@2 e4 ~ e4 ~ f#4 e4 g#4@4 ~@4, ~@4 f#4 ~@3", BL: "~@2 a4 ~ a4 ~ b4 ~ [a4,b4] ~@7, ~@2 c#5 ~",
  BM: "~@2 e5 ~ e5 ~ f#5 [e5,f#5] g#5@4 ~@4", BN: "c#5 ~ c#5 ~ d5@2 f#5@2 c#5 ~ c#5 ~ b4 ~ b4@2",
  BO: "~@2 e5 ~ e5@2 f#5 e5 g#5@4 ~@4, ~@8 f#5 ~@7", BP: "~@2 f5 ~ f5@2 f#5 f5 g#5@4 ~@4, ~@8 f#5 ~@7",
  BQ: "c#5@4 d5 ~ d5 ~", BR: "~@2 e4 ~ e4@2 f#4 e4 g#4@4 ~@4, ~@4 f#4 ~@3",
  BS: "~@2 a4 ~ a4 ~ b4 a4 c#5@4 ~@4, ~@4 b4 ~@3", BT: "c#5 ~ c#5 ~ d5@2 f#5@2 c#5@2 c#5@2 b4 ~ b4@2",
  BU: "c#4@3 d4 c#4@2 ~@2", BV: "d4@4 d5@2 g#4 b4", BW: "a4@6 b4 d5", BX: "a4@2 g#4 ~", BY: "c#4@3 d4 c#4@4",
  BZ: "b3@3 b4", CA: "a4 c#5 f#4 a4", CB: "a4@3 b4 c#5@2 a#4@2", CC: "b4@3 c#5 d5@2 b4@2", CD: "a4@3 b4 g#4@2 ~@2",
  CE: "d4@8 d5@4 g#4 b4@3", CF: "a4@6 f#4 d4 c#4@4 b3@4", CG: "d4@2 c#4 ~", CH: "d4@8 ~ c#4@4 ~@3",
})).s("gm_violin").gain(0.15)

// other · viola
const viola = note(`<
  ~ A B@2 C D E F G A B@2 C D E F G H@2 I J K L@2 M H@2 I J K L@2 M N O@2 P Q R@2 S N O@2 P Q R@2 S T U V W X Y@2 Z T U
  V W X Y@2 Z AA AB AC AD AA AE AF AG AA AB AC AD AA AE AF AG AH AI AJ AK AA AB AL AM AH AI AJ AK AA AB AL AN AO AP AQ
  AR AS AT AU AV AO AP AQ AR AS AT AU AW AX AY AZ BA AO AP BB BC AX AY AZ BA AO AP BB BD A BE@2 J BF@2 BG BH A BE@2 J
  BF@2 BG BH BI@2 BJ J A BK BL J BI@2 BJ J A BK BL BM
>`.pickRestart({
  A: "e4", B: "[e4@5 ~ a3@2]/2", C: "g#3 ~@2 d4", D: "c#4 e4", E: "e4 ~ g#4 ~", F: "e4@3 a4", G: "g#4 ~",
  H: "[e4@3 c#4]/2", I: "d4 e4 f#4!2", J: "e4@3 ~", K: "e3@3 e4", L: "[e4@5 b3 a3 d4]/2", M: "c#4 ~", N: "e4@2 ~ e4",
  O: "[e4@5 ~ a4@2]/2", P: "g#4 ~ a3 ~ g#3!2 a3 g#3", Q: "a3 ~@2 e4", R: "[b4@2 ~@3 e4@2 e4@3 ~ c#5 b4@2 a4@2]/2",
  S: "a4 g#4 ~@2", T: "d4@3 e4", U: "e4@2 ~@3 e4 d4 c#4", V: "b3@4 ~@8 d4@2 f#4 ~", W: "e4@9 ~ b4@2 a4@2 g#4@2",
  X: "a4 ~@2 e4", Y: "[e4@5 ~ c#5 g#4]/2", Z: "g#4 a4 ~@2", AA: "c#5", AB: "d5", AC: "c#5 d5", AD: "c#5 b4 ~@2",
  AE: "b4", AF: "c#5 a4!2 f#4 e4 ~ d#4 ~", AG: "d#4@2 e4 ~", AH: "g#4", AI: "a4 a#4", AJ: "b4 c#5 d5 b4",
  AK: "a4@8 g#4 ~ a4@2 b4@2 c5@2", AL: "c#5@3 a4 f#5@3 d5 c#5@2 ~@2 b4@2 ~@2", AM: "b4@2 a4 ~",
  AN: "b4@8 a4@4 c#4 d4 c#4 d4", AO: "f#4 e4 e4@3 c#5 b4 a4", AP: "g#4 b4 e5 d5 d5@5 c#5 b4 a4 g#4 f#4 e4 d4",
  AQ: "c#4@2 a4 b4 c#5 b4 a4 g#4 b4 a4 g#4 f#4 g#4 f#4 e4 d#4", AR: "f#4@2 e4@2 e4@5 f4 f#4 d4 c#4 e4 d4 f#4",
  AS: "d#4 e4 e4@3 a4 c#5 e5", AT: "e5@3 b4 b4@6 c#5 b4 a4 g#4 f#4 e4", AU: "d#4@4 e4@4 f#4@3 g#4 a4@3 b4",
  AV: "a4@4 g#4@4 ~@4 c#4 d4 c#4 d4", AW: "a4@4 g#4@4 ~@4 g#4 a4 g#4 a4", AX: "c#5@2 b4@2 b4@6 a#4 b4 a#4 b4 d5 c#5",
  AY: "a#4@2 b4@2 b4@6 a#4 b4 a#4 b4 d5 b4", AZ: "g#4 a4 c#5 a4 f#4 g4 b4 g4 f4 f#4 g#4 a#4 b4 c#5 d5 b4",
  BA: "a4 g#4 c#5 b4 a4 g#4 f#4 e4 d#4 e4 f#4 d4 c#4 d4 c#4 d4", BB: "c#4@2 a4@2 f#4@2 d5@2 e4@6 f#4 g#4",
  BC: "b4@4 a4@4 ~@4 g#4 a4 g#4 a4", BD: "b4 a4 ~@2", BE: "[b4@6 e4@4 a3 c#4 d4@2 f#4@2]/2", BF: "[e4@6 g#4 e4]/2",
  BG: "c#4@2 b3 b4", BH: "b4@3 ~", BI: "e4/2", BJ: "f#4", BK: "b4@3 e4", BL: "e4 a3@2 a4 e4@2 e4@2",
  BM: "e4@8 ~ e4@4 ~@3",
})).s("gm_viola").gain(0.16)

stack(flute, violin, viola)

More by Wolfgang Amadeus Mozart