Strudelify

12 variacions sobre o tema Ah vous dirai je maman K 265 W A Mozart

Arranxos: Isabel de la Puente

KeyC majorTempo130 bpm
0:00/0:00
// 12 variacions sobre o tema Ah vous dirai je maman K 265 W A Mozart — Arranxos: Isabel de la Puente
// 130 bpm, 2/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/4742576; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 196 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/2)

// 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@6 C@6 D E@6 F G@5 A B@6 H@6 I J@6 K L@5 M N O P Q R S T M N O P Q R S T U V W X U V W Y M N O P Q R S T U V W X U
  V W Y M N O P Q R S T Z AA AB AC AD AE AF AG Z AA AB AC AD AE AF AG AA AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AA
  AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC T AW AX AY AZ BA BB BC T BD BE BF BG@2 BH BI BJ BK
  AX AY AZ BA BB BC T BD BE BF BG@2 BH BI BJ BK AX AY AZ BA BB BC T
>`.pickRestart({
  A: "c5@9 c5@7", B: "[~ g5@9 g5@9 a5@8 a5@9 g5@9 g5@8 f5@9 f5@9 e5@8 e5@9 d5@8]/6",
  C: "[~ d5@8 c5@17 ~ c5@8 c5@9 g5@9 g5@8 a5@9 a5@9 g5@8 g5@9]/6", D: "f5@9 f5@7",
  E: "[~ e5@9 e5@9 d5@8 d5@9 c5@17 g5@9 g5@9 f5@8 f5@9 e5@8]/6", F: "~ e5@8 d5@7",
  G: "[~@2 d5@9 g5@8 g5@9 f5@9 f5@8 e5@9 e5@9 d5@17]/5",
  H: "[~ d5@8 c5@17 ~ g5@8 g5@9 f5@9 f5@8 e5@9 e5@9 d5@8 d5@9]/6", I: "g5@9 g5@7",
  J: "[~ f5@9 f5@9 e5@8 e5@9 d5@17 c5@9 c5@9 g5@8 g5@9 a5@8]/6", K: "~ a5@8 g5@7",
  L: "[~@2 g5@9 f5@8 f5@9 e5@9 e5@8 d5@9 d5@9 c5@17]/5", M: "[e4,g4,c5] c5", N: "[c5,e5,g5] g5", O: "g5 f5, [c5,a5]",
  P: "f5 e5, [c5,g5]", Q: "[c5,e5,f5] [g4,d5,f5]", R: "[g4,d5,e5] [a4,c5,e5]", S: "[a4,c5,d5] [f4,b4,d5]",
  T: "[e4,g4,c5] ~", U: "[e5,g5]!2", V: "e5 d5, f5", W: "d5@4 c5@3 a5, e5@7 ~", X: "[c5,e5]@8 d5@3 e5@2 f5@3, ~ b4",
  Y: "[c5,e5]@8 d5@3 f5@2 d5@3, ~ b4", Z: "c5@2 ~ c5", AA: "g5@2 ~ g5", AB: "a5@2 ~ a5", AC: "g5@2 ~ [e5,g5]",
  AD: "~ [e5,f5] ~ [d5,f5]", AE: "~ [d5,e5] ~ [c5,e5]", AF: "~ [c5,d5] ~ [b4,d5]", AG: "c5 ~", AH: "f#5@2 ~ f5",
  AI: "e5@2 ~ d#5", AJ: "d5@2 ~ g4", AK: "g5@4 ~@2 g5 f#5", AL: "f5@4 ~@2 f5 e5", AM: "d#5@4 ~@2 f#5 g5",
  AN: "d5@4 ~@2 f5 d5", AO: "c5@4 ~@2 c5 e5", AP: "g5@4 ~@2 g5 e5", AQ: "a5@4 ~@2 a5 c6", AR: "g5@4 ~@2 e5 g5",
  AS: "~@2 g5 f#5 ~@2 d5 f5", AT: "~@2 f5 e5 ~@2 g5 e5", AU: "~@2 c#5 d5 ~@2 f5 d5", AV: "~@2 b4 c5 ~@4",
  AW: "[e4,g4,c5] ~ [e4,g4,c5] ~", AX: "[c5,e5,g5] ~ [c5,e5,g5] ~", AY: "[c5,g5,a5] ~ [c5,f5,a5] ~",
  AZ: "[c5,f5,g5] ~ [c5,e5,g5] ~", BA: "[a4,e5,f5] ~ [g4,d5,f5] ~", BB: "[g4,d5,e5] ~ [a4,c5,e5] ~",
  BC: "[f4,a4,d5] ~ [d4,f4,b4] ~", BD: "g3 f#3 g3 f#3 g3 f#3 g3 f#3", BE: "g3 f#3 g3 f#3 g3 a3 b3 g3",
  BF: "c4 b3 c4 d4 e4 d4 e4 f#4", BG: "g4 f#4 g4 f#4 g4 f#4 g4 f#4", BH: "g4 f#4 g4 f#4 g4 a4 b4 g4",
  BI: "c5 b4 c5 d5 e5 d5 e5 f#5", BJ: "g5 a5 f5 g5 e5 f5 d5 e5", BK: "c5 ~ [e4,g4,c5] ~",
})).s("gm_piano").gain(0.3).pan(0.7)

// other · piano
const piano_2 = note(`<
  A B@6 C@6 D E@6 F G@5 A B@6 H@6 I J@6 K L@5 M@2 N M O P Q R M@2 N M O P Q R S T U V S T U V M@2 N M O P Q R S T U V S
  T U V M@2 N M O P Q R W X Y X Z AA AB AC W X Y X Z AA AB AC AD AE AF AG AD AE AF AG AH AI AJ AK Z AL AB AM AD AE AF AG
  AD AE AF AG AH AI AJ AK Z AL AB AM AN AO AP AQ AR AS AT AU AN AO AP AQ AR AS AT AU AV AW AX AY AZ AW AX BA AN AO AP AQ
  AR AS AT AU AV AW AX AY AZ AW AX BA AN AO AP AQ AR AS AT AU
>`.pickRestart({
  A: "c3@9 c4@7", B: "[~ e4@9 c4@9 f4@8 c4@9 e4@9 c4@8 d4@9 b3@9 c4@8 a3@9 f3@8]/6",
  C: "[~ g3@8 c3@17 ~ c3@8 c4@9 e4@9 c4@8 f4@9 c4@9 e4@8 c4@9]/6", D: "d4@9 b3@7",
  E: "[~ c4@9 a3@9 f3@8 g3@9 c3@17 e4@9 g3@9 d4@8 g3@9 c4@8]/6", F: "~ g3@8 b3@7",
  G: "[~@2 g3@9 e4@8 g3@9 d4@9 g3@8 c4@9 c4@9 [g3,b3]@17]/5", // G
  H: "[~ g3@8 c3@17 ~ e4@8 g3@9 d4@9 g3@8 c4@9 g3@9 b3@8 g3@9]/6", I: "e4@9 g3@7",
  J: "[~ d4@9 g3@9 c4@8 c4@9 [g3,b3]@17 c3@9 c4@9 e4@8 c4@9 f4@8]/6", K: "~ c4@8 e4@7",
  L: "[~@2 c4@9 d4@8 b3@9 c4@9 a3@8 f3@9 g3@9 c3@17]/5", M: "c2@3 e2@2 g2@3 c3@3 e3@2 c3@3",
  N: "c2@3 f2@2 a2@3 c3@3 f3@2 c3@3", O: "a1 ~@2 g#2@2 a2@3 b1 ~@2 a#2@2 b2@3", P: "c2 ~@2 b2@2 c3@3 a1 ~@2 g#2@2 a2@3",
  Q: "f1 ~@2 e2@2 f2@3 g1 ~@2 f#2@2 g2@3", R: "c2@3 e2@2 g2@3 c3@8", S: "g2@3 c3@2 e3@3 g3@3 c4@2 e4@3",
  T: "d4@3 b3@2 d4@3 g3@3 a3@2 b3@3", U: "c4@3 b3@2 c4@3 c3@3 e3@2 f3@3", V: "g3@3 f#3@2 g3@3 g2@8", W: "~ c4 e4@2",
  X: "~ e4 c4@2", Y: "~ f4 c4@2", Z: "d4 ~ b3 ~", AA: "c4 ~ a3 ~", AB: "f3 ~ g3 ~", AC: "~ c4 c3@2", AD: "~ e4 g3@2",
  AE: "~ d4 g3@2", AF: "~ c4 g3@2", AG: "~ b3 g3@2", AH: "~@2 c3 e3 g3@4", AI: "~@2 c4 e4 g4@4", AJ: "~@2 f4 a4 c4@4",
  AK: "~@2 e4 g4 c4@4", AL: "c4 ~ e3 ~", AM: "c4 ~ c3 ~", AN: "c3 b2 c3 b2 c3 b2 c3 b2", AO: "c3 b2 c3 b2 c3 d3 e3 c3",
  AP: "f3 e3 f3 e3 f3 g3 a3 b3", AQ: "c4 b3 c4 b3 c4 d4 e4 c4", AR: "d4 c#4 d4 c4 b3 a3 b3 g3",
  AS: "c4 b3 c4 b3 a3 g#3 a3 g3", AT: "f3 e3 f3 d3 g3 f#3 g3 g2", AU: "c3 g2 e2 g2 c2@4", AV: "[g2,e3]!2",
  AW: "[g2,d3,f3]!2", AX: "[g2,c3,e3]!2", AY: "[g2,b2,d3]!2", AZ: "[g2,e3,g3]!2", BA: "[g2,b2,d3] ~",
})).s("gm_piano").gain(0.3).pan(0.3)

stack(piano, piano_2)