Strudelify

Menuetto from Mazas duet Op. 70 nº 1

F. Mazas Op.70 nº 1

KeyG majorTempo120 bpm
0:00/0:00
// Menuetto from Mazas duet Op. 70 nº 1 — F. Mazas Op.70 nº 1
// 120 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 3/4 at bar 2, 2/4 at bar 53, 1/4 at bar 53, ...) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/843676; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/3)

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

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

// other · violin · "Violino" · soft notes
const violin_soft = note(`<
  ~@4 A B C D E ~@19 F G H I J K L ~@5 A B C D E ~@11 A B C D E ~@19 F G H I J K L ~@5 A B C D E ~@8
>`.pickRestart({
  A: "~@11 e4@2 ~@3", B: "d4@2 ~@3 g3@2 ~@4 b3@2 ~@3", C: "c4@2 ~@3 e4@2 ~@4 c4@2 ~@3", D: "g3@2 ~@3 b3@2 ~@4 c4@2 ~@3",
  E: "d4 ~@7", F: "~@11 g4@2 ~@3", G: "[g3,f4]", H: "[g3,e4]", I: "a4 [g3,g4]@2 ~@2 [g3,f4]@2 ~@4 [g3,e4]@2 ~@3",
  J: "[g3,d4]", K: "[g3,f4] ~@7", L: "[g3,e4] ~@7",
})).s("gm_violin").gain(0.2)

stack(violin, violin_soft)