Strudelify

Eine kleine Nachtmusik K.525

Wolfgang Amadeus Mozart

KeyG majorTempo140 bpm
0:00/0:00
// Eine kleine Nachtmusik K.525 — Wolfgang Amadeus Mozart
// 140 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1476951; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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 · cello · "Violoncello"
const cello = note(`<
  A B C D E F G F H I J K L M J N O P@2 Q R S@2 T@2 U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AI AJ AK AL AM AN AO ~ AP
  AQ AR@2 A B C D AS AT AU AT AV AW AX AY AZ BA AX BB BC BD BE BF BG BH@2 BI BJ BK BL BM BN BO BL BP BQ BR BQ BR BS BT
  BU BV BW BX BY BZ CA CB CC@2 CD CE
>`.pickRestart({
  A: "d3@2 ~ d3 g3@2 ~ d3", B: "g3 d3 g3 b3 d4@2 ~@2", C: "c4@2 ~ a3 c4@2 ~ a3", D: "c4 a3 f#3 a3 d3@2 ~@2",
  E: "[b2,d3]!8 d3!8, ~ b2", F: "[c3,d3]!16", G: "d3!16, b2!2", H: "d3@4 c4@2 c4@2 d4@2 d4@2 c4@2 b3 a3",
  I: "g3!2 f#3!2 g3@2 ~@2", J: "b3 c4", K: "b3 a3 a3@2 a3 g3 g3@2", L: "e3!2 c3 e3", M: "d3 ~ f#3 ~ g3 ~@3",
  N: "b3@2 a3@2 a3 ~ a3 ~ a3@2 g3@2 g3 ~ g3 ~", O: "g3@2 f#3@2 f#3 ~ f#3 ~ e3@2 d3@2 c3@2 d3@2", P: "g3",
  Q: "b2!8 c3!8", R: "b2!4 d3!8 g3!4", S: "f#3!8 g3!8", T: "[f#3 f#3@2 f#3@2 f#3@2 e3@2 e3@2 e3@2 e3@2 e3]/2",
  U: "e3 f#3 e3 f#3", V: "e3 a3!3 a3@2 ~@2", W: "~@6 b3 ~", X: "g3 ~ e3 ~ a3 ~@3", Y: "~@2 e3@2 d3 ~ e3 ~",
  Z: "f#3@2 e3 ~", AA: "a3@6 g3 [e3,f#3] d3@2 ~@2 b3@2 ~@2", AB: "g3 ~ e3 ~ a3 ~ g3 ~",
  AC: "g3@2 f#3@2 ~@2 e3 ~ e3@2 f#3@2 ~@2 g3@2", AD: "d2 ~@3", AE: "d3@2 ~ a2 d3@2 ~ a2", AF: "d3 a2 d3 f#3 a3@2 ~@2",
  AG: "a3@2 ~ f#3 a3@2 ~ f#3", AH: "a3 f#3 d#3 f#3 b2@2 ~@2", AI: "e3!2 f3!2 g3!2 e3!2", AJ: "d3!2 e3!2 f3!2 d3!2",
  AK: "c3!2 d3!2 e3!2 c3!2", AL: "c3!2 d3!2 d#3!2 c3!2", AM: "a#2!2 a2!2 a#2!2 a3!2", AN: "a#3!2 a3!2 a#3!2 a3 g3",
  AO: "f#3 ~@3", AP: "~@3 d3 e3 f#3 g3 a3", AQ: "a#3 b3 c4 c#4", AR: "[d4@24 f#3@6 e3 f#3]/2",
  AS: "[b2,g3] ~ g3@3 b3 a3 g3", AT: "g3@2 f#3@2 f#3@6 a3@2 c4@2 f#3 ~", AU: "a3 g3 g3@3 b3 a3 g3",
  AV: "g3 ~ g3 ~ f#3@2 e3 f#3 g3 ~ g3 ~ a3@2 g3 a3", AW: "b3 ~ b3 ~ c4@2 b3 c4 d4@4 ~@4", AX: "d4 e4",
  AY: "d4 c4 c4@2 c4 b3 b3@2", AZ: "b3@2 a3@2 a3@4 g3@2 f#3@2 e3 ~ f#3 ~", BA: "g3 ~ a3 ~ b3 ~@3",
  BB: "d4@2 c4@2 c4 ~ c4 ~ c4@2 b3@2 b3 ~ b3 ~", BC: "b3@2 a3@2 a3 ~ a3 ~ g3@2 f#3@2 e3@2 f#3@2",
  BD: "g3@10 g3 f#3 a3@2 f#3@2, ~@12 g3 ~@3", BE: "b3@10 b3 a3 c4@2 a3@2, ~@12 b3 ~@3", BF: "d3@8 e3!4 f#3!4",
  BG: "g3!4 a3!4 b3!4 c#4!4", BH: "d4@6 a3@2 c#4@3 a3 c#4@3 a3", BI: "d4 ~ a3 ~ c#4 ~ a3 ~ d4 ~ a3 ~ c#4 ~ a3 ~",
  BJ: "d4 d3!3 d3@2 ~@2", BK: "~@6 a2 ~", BL: "a3 ~ g3 ~ f#3 ~ d3 ~", BM: "~@2 d3@2 e3 ~ c3 ~",
  BN: "d3@2 d4@3 c#4 c4 a3", BO: "g3 ~ a3 ~ b3 ~ g#3 ~", BP: "e3 ~ c3 ~ d3 ~ d3 ~", BQ: "g2!2 a2!2 b2!2 g2!2",
  BR: "f#2!2 g2!2 a2!2 f#2!2", BS: "g2 g3 b3 a3 g#3 e3 f#3 g#3", BT: "a3 c4 a3 g3 f#3 d3 e3 f#3",
  BU: "g3 ~ g3 ~ a3 ~ b3 ~ c4@2 c4@2 c4@2 c4@2", BV: "g3 b3 d4!5 c4", BW: "g2 d2 e2 f#2 g2!2 a2!2",
  BX: "b2 f#2 g2 a2 b2!2 c3!2", BY: "d3!2 d#3!2 e3@2 ~@2", BZ: "c3 d3", CA: "g2 ~@3", CB: "c3 ~ d3 ~", CC: "g2!8",
  CD: "g2 b2 d3 g3 b3 g3 d4 b3", CE: "g4@4 g2@3 g2 g2@4 ~@4",
})).s("gm_cello").gain(0.3)

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

stack(cello, cello_2)

More by Wolfgang Amadeus Mozart