Strudelify

Ein musikalischer Spaß K.522

Wolfgang Amadeus Mozart

KeyF majorTempo160 bpm
0:00/0:00
// Ein musikalischer Spaß K.522 — Wolfgang Amadeus Mozart
// 160 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5509042; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/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.

// chords · french horn · "Horn in F"
const french_horn = note(`<
  A B C A B C A D E F A ~@4 G H I J ~@7 K L M N O P A B C A B C A D E F A ~@4 G H I J ~@7 K L M N O P Q B R B ~@2 S@2 T
  S ~@7 U A B C A D E ~@2 D@2 V W X Y Z AA ~@7 AB AC AD AE AF AG AH
>`.pickRestart({
  A: "[a3,f4]!3 ~", B: "[c4,g4]!3 ~", C: "[f4,a4] [g4,bb4] [a4,c5] [g4,bb4] [f4,a4]@2 [c4,g4]@2", D: "[f3,f4]!4",
  E: "[a3,f4]!4", F: "[c4,g4]!4", G: "[c4,g4] [c3,g4]", H: "[f3,a4] [c4,c5] g4!2", I: "[c4,g4]!2 [c3,g4]!2",
  J: "[f3,a4] [c4,c5] g4 ~", K: "[c4,g4] ~ [c4,c5] ~", L: "f4 g4 a4@2",
  M: "[c4,g4]@4 [c4,g4]@3 [c4,g4] [c4,c5]@4 [c4,c5]@3 [c4,c5]", N: "f4@2 g4@2 [c4,g4]@2 [c4,c5]!2",
  O: "[c4,c5]@2 [c4,c5]!2 [c4,c5]@2 [c4,c5]!2", P: "[c4,c5] [c3,g4]!2 ~", Q: "[f4,g4]!3 ~", R: "[f4,g4]!8",
  S: "[f3,f4]!3 ~", T: "[f3,f4]!8", U: "~@5 [g4,bb4] [f4,a4] [c4,g4]", V: "[f3,f4]@4 bb4 a4 g4 f4",
  W: "[c4,c5]@4 [c3,c4]@3 [c3,c4] [c3,c4]@4 ~@4", X: "[f3,c4]!2", Y: "[f3,f4]!2 [c4,g4] [c3,g4]", Z: "[f3,c4]!4",
  AA: "[f3,f4]@2 a3 f3 [c3,g4]@2 ~@2, ~ f4 ~@2", AB: "[f3,c4] ~ [a3,f4] ~", AC: "~@8 [a3,f4]!2 ~ [a3,f4]!3 ~ [a3,f4]",
  AD: "[a3,f4]@4 [f4,a4]@3 [f4,a4] [f4,a4]@4 [f4,a4]@3 [f4,a4]", // Dm F
  AE: "[f4,g4]@2 [c4,g4]@2 [a3,f4] [f4,a4] [g4,bb4] [c4,g4]", AF: "[a3,f4]@2 [a3,f4]!3 [c4,g4] [f4,a4] [a3,f4]",
  AG: "[a3,a4] [c4,g4]@3 [c4,g4]@2 [c4,g4]@2 [c4,g4]@8", AH: "[a4,c5] [bb4,d5] [a4,c5] [g4,bb4] [f4,a4]@2 [c4,g4]@2",
})).s("gm_french_horn").gain(0.64)

// chords · french horn · "Horn in F" · soft notes
const french_horn_soft = note(`<
  ~@11 A@2 B C ~@8 D@3 ~@17 A@2 B C ~@8 D@3 ~@19 E ~ F G H ~@6 A@2 ~@12 I@3 ~@7
>`.pickRestart({
  A: "[g4 a4, f4]/2", B: "[c4,g4]", C: "[a3,f4]!3 ~", D: "g4/3", E: "[c4,g4]!3 ~", F: "[c4,g4] [f4,a4]",
  G: "[c4,g4]@2 [f4,a4] [g4,bb4] [a4,c5]@2 [g4,bb4] [f4,a4]", H: "[c4,g4]@2 [c4,g4]@2 [c4,g4] ~@3", I: "[c3,c4]/3",
})).s("gm_french_horn").gain(0.32)

// other · string ensemble 1 · "Violins"
const string_ensemble_1 = note(`<
  A B C A B C A D E F G ~@4 H I J K ~@5 L M N O N P Q R A B C A B C A D E F G ~@4 H I J K ~@5 L M N O N P Q R S T U T
  ~@2 V W X W ~@7 Y A B C Z D E ~@2 D E AA AB AC AD AE AF ~@7 AG AH AG AI AJ AK AL
>`.pickRestart({
  A: "[a4,f5]!3 ~", B: "[c5,g5]!3 ~", C: "a5 bb5 c6 bb5 a5@2 g5@2",
  D: "d6 c6 ~ bb5 d6 c6 ~ bb5 d6 c6 ~ bb5 d6 c6 ~ bb5", E: "c6 bb5 ~ a5 c6 bb5 ~ a5 c6 bb5 ~ a5 c6 bb5 ~ a5",
  F: "bb5 a5 ~ g5 bb5 a5 ~ g5 bb5 a5 ~ g5 bb5 a5 ~ g5", G: "a5!3 ~", H: "g5 c6", I: "a5 g5 ~ f5 e5 d5 ~ c5 d5@4 d5@4",
  J: "g5!2 c6!2", K: "a5 g5 ~ f5 e5 d5 ~ c5 d5@4 ~@4", L: "d6 c6@7 d6 c6@7", M: "e6 d6@7 e6 d6@7",
  N: "e6 d6 ~ c6 b5 a5 ~ g5 c6 b5 ~ a5 g5 f5 ~ e5", O: "f5 g5 a5@2", P: "f5@2 g5@2 c5@2 e5 g5",
  Q: "c6@2 e5 g5 c6@2 e5 g5", R: "c6 [e5,c6]!2 ~", S: "[f5,d6]!3 ~", T: "[e5,c6]!3 ~", U: "[f5,d6]!8",
  V: "[eb5,c6]!3 ~", W: "[d5,bb5]!3 ~", X: "[eb5,c6]!8", Y: "~@5 c5 d5 e5", Z: "f5!3 ~",
  AA: "d6 c6 bb5 a5 bb5 a5 g5 f5", AB: "c6@4 c5@3 c5 c5@4 ~@4", AC: "c5 f5", AD: "d5 c5 ~ bb4 a4 g4 ~ f4 g4@4 g4@4",
  AE: "c5!2 f5!2", AF: "d6 c6 ~ bb5 a5 g5 ~ f5 g5@4 ~@4", AG: "a5 g5 ~ f5 e5 d5 ~ c5 f5 e5 ~ d5 c5 bb4 ~ a4",
  AH: "bb4 c5 d5@2", AI: "bb4@2 c5@2 f5 c5 d5 e5", AJ: "f5@2 f5!3 g5 a5 f5", AK: "a5 g5@3 g5@2 g5@2 g5@8",
  AL: "c6 d6 c6 bb5 a5@2 g5@2",
})).s("gm_string_ensemble_1").gain(0.64)

// other · string ensemble 1 · "Violins" · soft notes
const string_ensemble_1_soft = note(`<
  ~@11 A B C D ~@4 E F G H I ~@19 A B C D ~@4 E F G H I ~@12 J K ~@4 L M N O N P@2 Q ~@6 A R ~@8 S T U V W X Y ~@7
>`.pickRestart({
  A: "b5@5 c6 d6 b5", B: "d6@2 c6@2 c6 ~ c6 ~ d6@2 c6@2 bb5@2 a5@2", C: "a5@2 g5@2 g5 ~ g5 ~ g5@2 f5@2 g5@2 a5@2",
  D: "f5!3 ~", E: "g4 ~ d5 ~ b4 ~ d5 ~ g4 ~ d5 ~ b4 ~ d5 ~", F: "g4 ~ e5 ~ c5 ~ e5 ~ g4 ~ e5 ~ c5 ~ e5 ~",
  G: "g4 ~ f5 ~ d5 ~ f5 ~ g4 ~ f5 ~ d5 ~ f5 ~", H: "g4 ~ g5 ~ e5 ~ g5 ~ g4 ~ g5 ~ e5 ~ g5 ~", I: "c6 b5@7 c6 b5@7",
  J: "g5@2 f5 eb5 d5@2 c5@2", K: "bb4!3 ~", L: "f5@2 e5 d5 c5@2 b4@2", M: "a4!3 ~", N: "d5 eb5 d5 c5 bb4@2 a4@2",
  O: "g4@2 g4@2 g4 a4 bb4 c5", P: "g4@2 a4 bb4 c5@2 bb4 a4", Q: "g4@2 g4@2 g4 ~@3", R: "d6@2 c6@2 c6 ~ c6 ~ c6@4 ~@4",
  S: "c5 ~ g5 ~ e5 ~ g5 ~ c5 ~ g5 ~ e5 ~ g5 ~", T: "c5 ~ a5 ~ f5 ~ a5 ~ c5 ~ a5 ~ f5 ~ a5 ~",
  U: "c5 ~ bb5 ~ g5 ~ bb5 ~ c5 ~ bb5 ~ g5 ~ bb5 ~", V: "c5 ~ c6 ~ a5 ~ c6 ~ c5 ~ c6 ~ a5 ~ c6 ~", W: "f5 e5@7 f5 e5@7",
  X: "g5 f5@7 g5 f5@7", Y: "a5 g5@7 a5 g5@7",
})).s("gm_string_ensemble_1").gain(0.32)

// other · string ensemble 1 · "Violins"
const string_ensemble_1_2 = note(`<
  A B C A B C A D E F A ~@4 G H I J ~@5 K L M N M O P B A B C A B C A D E F A ~@4 G H I J ~@5 K L M N M O P B Q B R B
  ~@2 S T U T ~@7 V W X Y Z D E ~@2 D E AA AB AC AD AE AF ~@7 AG AH AG AI AJ AK AL
>`.pickRestart({
  A: "[a4,f5]!3 ~", B: "[c5,e5]!3 ~", C: "f5 g5 a5 g5 f5@2 e5@2", D: "bb4 c5 ~ d5 bb4 c5 ~ d5 bb4 c5 ~ d5 bb4 c5 ~ d5",
  E: "a4 bb4 ~ c5 a4 bb4 ~ c5 a4 bb4 ~ c5 a4 bb4 ~ c5", F: "g5 f5 ~ e5 g5 f5 ~ e5 g5 f5 ~ e5 g5 f5 ~ e5",
  G: "[g3,e4]!4", H: "[a3,f4] c5 b4!2", I: "e4 f4 g4 f4 e4 f4 g4 e4", J: "f4 g4 ~ a4 b4 c5 ~ a4 a4@4 ~@4",
  K: "g4 ~ e5 ~ c5 ~ e5 ~ g4 ~ e5 ~ c5 ~ e5 ~", L: "g4 ~ f5 ~ d5 ~ f5 ~ g4 ~ f5 ~ d5 ~ f5 ~",
  M: "e5 d5 ~ c5 b4 a4 ~ g4 c6 b5 ~ a5 g5 f5 ~ e5", N: "f5 g5 a5@2", O: "f5@2 g5@2 c5@2 e5 g5",
  P: "[c5,e5]@2 e5 g5 [c5,e5]@2 e5 g5", Q: "[d5,f5]!3 ~", R: "[d5,f5]!8", S: "[eb4,c5]!3 ~", T: "[d4,bb4]!3 ~",
  U: "[eb4,c5]!8", V: "~@5 c5 d5 e5", W: "f5 c5 f5 c5 f5 a5 g5 f5", X: "g5 c5 g5 c5 g5 bb5 a5 g5",
  Y: "f5 g5 a5 g5 f5 d5 e5 c5", Z: "f5 d5 c5 bb4 a4 g4 a4 f4", AA: "d6 c6 bb5 a5 bb5 a5 g5 f5",
  AB: "c6@4 c5@3 c5 c5@4 ~@4", AC: "a3 ~ c4 ~ f4 ~ c4 ~ a3 ~ c4 ~ f4 ~ c4 ~",
  AD: "bb3 ~ d4 ~ f4 ~ d4 ~ g3 ~ c4 ~ e4 ~ c4 ~", AE: "a3 ~ bb3 ~ c4 ~ bb3 ~ a3 ~ bb3 ~ c4 ~ bb3 ~",
  AF: "f4 g4 ~ a4 bb4 c5 ~ d5 e5@4 ~@4", AG: "a4 g4 ~ f4 e4 d4 ~ c4 f5 e5 ~ d5 c5 bb4 ~ a4", AH: "bb4 c5 d5@2",
  AI: "bb4@2 c5@2 f4 a4 bb4 g4", AJ: "a4@2 a4!3 bb4 c5 d5", AK: "f5 e5@3 e5@2 e5@2 e5@8", AL: "a5 bb5 a5 g5 f5@2 e5@2",
})).s("gm_string_ensemble_1").gain(0.64)

// other · string ensemble 1 · "Violins" · soft notes
const string_ensemble_1_soft_2 = note(`<
  ~@11 A B C D ~@4 E F G H I ~@19 A B C D ~@4 E F G H I ~@12 J K ~@4 L M N O N P@2 Q ~@6 A B ~@8 H R S T U V W ~@7
>`.pickRestart({
  A: "d5 f5 d5 f5 d5 f5 d5 f5", B: "a4 c5 f5 c5 a4 c5 f5 c5", C: "bb4 c5 e5 c5 bb4 c5 e5 c5",
  D: "a4 ~ c5 ~ a4 ~ c5 ~ a4@2 ~@6", E: "b3!4", F: "c4!4", G: "d4!4", H: "e4!4",
  I: "g4 ~ d5 ~ b4 ~ d5 ~ g4 ~ d5 ~ b4 ~ d5 ~", J: "eb5@2 d5 c5 bb4@2 a4@2", K: "bb4 d4!2 ~",
  L: "d5@2 c5 b4 a4@2 ab4@2", M: "a4 c4!2 ~", N: "bb4 c5 bb4 a4 g4@2 f4@2", O: "e4@2 e4@2 e4 f4 g4 a4",
  P: "e4@2 f4 g4 a4@2 g4 f4", Q: "e4@2 e4@2 e4 ~@3", R: "f4@2 f4@2 f4@2 e4 f4",
  S: "g4 ~ a4 ~ g4 ~ f4 ~ g4 ~ e4 ~ f4 ~ g4 ~", T: "a4!4", U: "c4 ~ g4 ~ e4 ~ g4 ~ c4 ~ g4 ~ e4 ~ g4 ~",
  V: "c4 ~ a4 ~ f4 ~ a4 ~ c4 ~ a4 ~ f4 ~ a4 ~", W: "c4 ~ bb4 ~ g4 ~ bb4 ~ c4 ~ bb4 ~ g4 ~ bb4 ~",
})).s("gm_string_ensemble_1").gain(0.32)

// other · string ensemble 1 · "Violas"
const string_ensemble_1_3 = note(`<
  A B C A B C A D E F G H I J A K L M N O@4 P Q R S T U V W B A B C A B C A D E F G H I J A K L M N O@4 P Q R S T U V W
  B X Y Z Y AA AB AC AD AE AD AF AG AH K AH AI AJ AK AL AM AN AO D E H I D E AP AQ AR AS AT AU AV@4 AW AX AY AZ BA BB BC
  BD BE BF
>`.pickRestart({
  A: "c4!3 ~", B: "e4!3 ~", C: "f4@2 f4 g4 a4 bb4 c5!2", D: "bb3!4", E: "f4!4", F: "e4!4", G: "c5!3 ~", H: "b3 d4",
  I: "a3 c4", J: "g3 bb3", K: "e3!4", L: "d3 f4 d4!2", M: "c4 d4 e4 d4 c4 d4 e4 c4", N: "d4 f4 d4 ~", O: "[g4,a4]!16",
  P: "d4@2 f4 e4 d4@2 f4@2", Q: "e4@2 g4 f4 e4@2 g4@2", R: "f4@2 d5 c5 b4@2 d5@2", S: "c5@4 ~@4 c5 b4 ~ a4 g4 f4 ~ e4",
  T: "f4 g4 a4@2", U: "e5 d5 ~ c5 b4 a4 ~ g4 c5 b4 ~ a4 g4 f4 ~ e4", V: "f4@2 g4@2 c4@2 e4 g4",
  W: "g4@2 e4 g4 g4@2 e4 g4", X: "[b3,d4]!3 ~", Y: "[c4,e4]!3 ~", Z: "[b3,d4]!8", AA: "c4 g4 f4 eb4", AB: "d4 f4!2 ~",
  AC: "[c4,a4]!3 ~", AD: "[bb3,f4]!3 ~", AE: "[c4,a4]!8", AF: "bb3 f4 e4 d4", AG: "c4 e4!2 ~", AH: "d3!4", AI: "e3 f3",
  AJ: "g3@4 a3 bb3 c4 d4", AK: "c4@2 c4@2 c4!2 d4 e4", AL: "f4 c4 f4 c4 f4 a4 g4 f4", AM: "g4 c4 g4 c4 g4 bb4 a4 g4",
  AN: "c5 f5 e5 d5 c5 bb4 a4 g4", AO: "f4 d4 c4 bb3 a3 g3 a3 f3", AP: "d5 c5 bb4 a4 bb4 a4 g4 f4",
  AQ: "c5@4 [c3,c4]@3 [c3,c4] [c3,c4]@4 ~@4", AR: "a4!4", AS: "g4 bb3 e4 g3",
  AT: "f4 ~ g4 ~ a4 ~ g4 ~ f4 ~ g4 ~ a4 ~ f4 ~", AU: "d4 e4 ~ f4 g4 a4 ~ bb4 c5@4 ~@4", AV: "[c5,d5]!16",
  AW: "bb4@8 c5@2 bb4@2 a4 ~ g4 ~", AX: "f4@4 d5@8 c5 bb4@3", AY: "a4 g4@3 f4 e4@3 f4 e4@3 d4 c4@3",
  AZ: "f4@4 ~@4 f4 e4 ~ d4 c4 bb3 ~ a3", BA: "bb3 c4 d4@2", BB: "a4 g4 ~ f4 e4 d4 ~ c4 f4 e4 ~ d4 c4 bb3 ~ a3",
  BC: "bb3@2 c4@2 f3 d4 c4 bb3", BD: "a3 bb3 c4 d4 e4 f4 g4 a4", BE: "g4 f4 e4 d4 c4 bb3 a3 g3",
  BF: "f3 e3 f3 g3 a3 bb3 c4 bb3",
})).s("gm_string_ensemble_1").gain(0.32)

stack(
  french_horn, french_horn_soft, string_ensemble_1, string_ensemble_1_soft, string_ensemble_1_2,
  string_ensemble_1_soft_2, string_ensemble_1_3
)

More by Wolfgang Amadeus Mozart