Strudelify

Mazurka

Baklanova

KeyD majorTempo120 bpm
0:00/0:00
// Mazurka — Baklanova
// 120 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5156853; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · violin · "Violin I"
const violin = note(`<
  A B C D A E F G H I J K L M N O A B C D A E F G H I J K L M N O P Q R S P Q T U A B C D L M N O V W V W X Y Z AA V W V
  W X Y Z AA A B C D A E F G H I J K L M N O
>`.pickRestart({
  A: "a5@3 b5@2 a5@11", B: "g5@3 a5@2 g5@11", C: "e5@3 f#5@2 g5@5 ~ a5@5", D: "g5@5 f#5@11", E: "g#5@3 a5@2 g#5@11",
  F: "g#5@3 a5@2 b5@5 ~ a5@5", G: "g#5@5 f#5@11", H: "a5@3 f#5@2 a5@3 f#5@3 d5@5", I: "g5@3 e5@2 g5@3 e5@3 c#5@5",
  J: "a4@3 b4@2 c#5@3 d5@3 e5@2 g5@3", K: "f#5@3 e5@2 f#5@3 g5@3 a5@5", L: "a5@3 f#5@2 f#5@3 g5@3 a5@5",
  M: "b5@3 a5@2 g5@3 f#5@3 e5@2 d5@3", N: "c#5@3 b4@2 a4@3 g4@3 f#4@2 e4@3", O: "d4@5 d5 ~@10",
  P: "f#4@3 f#4@2 b4@5 ~ d5@5", Q: "c#5@5 f#5@11", R: "f#4@3 f#4@2 b4@3 ~@3 d5@5", S: "c#5@5 f#4@11",
  T: "d5@3 d5@2 g5@11", U: "a4@3 a4@2 a5@11", V: "d5@5 g5@3 ~@3 g5@3 ~@2", W: "g5@5 f#5@3 e5@3 d5@5",
  X: "b4@3 c5@2 d5@5 ~ d5@5", Y: "d5@5 c5@3 b4@3 a4@5", Z: "b4@3 c5@2 d5@3 b4@3 c5@2 a4@3", AA: "g4@3 ~@2 g3@3 ~@8",
})).s("gm_violin").gain(0.01)

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P A B C D E F G H I J K L M N O P Q R Q S T U V W X Y Z AA M N O P AB AC AB AC AD AE AF
  AG AB AC AB AC AD AE AF AG A B C D E F G H I J K L M N O P
>`.pickRestart({
  A: "[a4,d5]@5 [a4,d5,f#5,a5]@11", B: "[a4,c#5,e5,g5]@5 [a4,c#5,e5,g5]@11", C: "[g4,a4,e5]@5 [g4,a4]@11",
  D: "~@3 a4@2 d5@3 e5@3 f#5@2 g5@3", E: "[a4,d5,f#5,a5]@5 [a4,d5,f#5,a5]@11",
  F: "[b4,d5,f#5,g#5]@5 [b4,d5,f#5,g#5]@11", G: "[b4,c#5,g#5]@5 [f4,b4,c#5]@11", H: "~@3 b4@2 a4@3 g#4@3 a4@2 b4@3",
  I: "[d4,f#4,a4]@5 a4@11", J: "[c#4,e4,g4]@5 g4@11", K: "e4@5 a3@5 ~ c#4@5", L: "d4@3 c#4@2 d4@3 e4@3 f#4@5",
  M: "f#4@3 d4@2 d4@3 e4@3 f#4@5", N: "g4@3 f#4@2 b4@3 a4@3 g4@2 f#4@3", O: "e4@3 d4@2 c#4@3 b3@3 a3@2 g3@3",
  P: "f#3@5 [f#4,a4,d5]@3 ~@8", Q: "~@5 [f#4,b4,d5]@3 e5@3 [f#4,b4,d5]@3 ~@2",
  R: "~@5 [f#4,a#4,c#5]@3 d5@3 [f#4,a#4,c#5]@3 ~@2", S: "~@5 [f#4,a#4,c#5]@3 d5@3 [g#4,b4]@2 c#5@3",
  T: "d5@3 c#5@2 b4@3 a#4@3 g#4@2 b4@3", U: "c#5@3 b4@2 a#4@3 g#4@3 f#4@2 a#4@3", V: "b4@3 a4@2 g4@3 f#4@3 e4@2 g4@3",
  W: "a4@3 b4@2 c#5@3 e5@3 f#5@2 g5@3", X: "[a4,d5,f#5,a5]@5 a4@11", Y: "[a4,c#5,e5,g5]@5 a4@11",
  Z: "[g4,a4,e5]@5 a4@11", AA: "~@3 a4@2 d4@3 e4@3 f#4@2 g4@3", AB: "~@5 [g5,b5,d6]@3 [g5,b5,d6]@3 [g5,b5,d6]@3 ~@2",
  AC: "~@5 [a5,c6,d6]@3 [a5,c6,d6]@3 [a5,c6,d6]@3 ~@2", AD: "[b4,d5,g5]@5 [d5,g5,b5]@5 ~ [d5,g#5,b5]@5",
  AE: "[e5,a5]@5 [a4,c5,e5]@5 ~ [a4,e5]@5", AF: "c#5 d5@2 ~@8 [c4,d4,f#4]@5", AG: "[b3,d4,g4]@5 ~@11",
})).s("gm_piano").gain(0.38)

// chords · piano
const piano_2 = note(`<
  A B@2 A@2 C D E A B F G H I J K A B@2 A@2 C D E A B F G H I J K L M L N L M O P A Q@2 R S T J K U@4 V W X Y U@4 V W X
  Y A B@2 A@2 C D E A B F G H I J K
>`.pickRestart({
  A: "[d2,d3]@5 [a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@3 ~@2", B: "[a1,a2]@5 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@3 ~@2",
  C: "[b1,b2]@5 [f#3,b3,d4]@3 ~@3 [f#3,b3,d4]@3 ~@2", D: "[c#2,c#3]@5 [f3,b3,c#4]@3 ~@3 [f3,b3,c#4]@3 ~@2",
  E: "[f#2,f#3]@5 [f#3,a3,c#4]@3 ~@3 [f#3,a3,c#4]@3 ~@2", F: "a2@5 [e3,g3]@3 ~@3 [e3,g3]@3 ~@2",
  G: "d2@5 [f#3,a3]@3 ~@3 [f#3,a3,d4]@3 ~@2", H: "d3@3 ~@2 [f#3,a3]@3 ~@3 [f#3,a3,d4]@3 ~@2",
  I: "g2@3 ~@2 [g3,b3]@3 ~@8", J: "a2@5 [g3,a3]@3 ~@8", K: "d2@5 d4@3 ~@8",
  L: "b2@5 [f#3,b3,d4]@3 ~@3 [f#3,b3,d4]@3 ~@2", M: "f#2@5 [f#3,a#3,c#4]@3 ~@3 [f#3,a#3,c#4]@3 ~@2",
  N: "f#2@5 [f#3,a#3,c#4]@3 ~@3 [f#3,g#3,c4]@3 ~@2", O: "e2@5 [e3,g3,b3,d4]@3 ~@3 [e3,g3,b3,d4]@3 ~@2",
  P: "a2@5 [a3,c#4,g4]@3 ~@8", Q: "a2@5 [a3,c#4,g4]@3 ~@3 [a3,c#4,g4]@3 ~@2",
  R: "d2@5 [d3,f#3,a3]@3 ~@3 [d3,f#3,a3]@3 ~@2", S: "d3@5 [f#3,a3]@3 ~@3 [f#3,a3,d4]@3 ~@2", T: "g2@5 [g3,b3]@3 ~@8",
  U: "c#5 d5@10 d4@3 ~@2", V: "g4@5 f#4@5 ~ f4@5", W: "f#4@5 a3@5 ~ c4@5", X: "c#4 d4@2 ~@8 d3@5", Y: "g3@5 g2@5 ~@6",
})).s("gm_piano").gain(0.46)

stack(violin, piano, piano_2)