Strudelify

Tempo di Minuetto in the Style of Pugnani

Fritz Kreisler

KeyD majorTempo80 bpm
0:00/0:00
// Tempo di Minuetto in the Style of Pugnani — Fritz Kreisler
// 80 bpm, 3/4, key D 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/5584589; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 120 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/3)

// 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@2 C@2 D@2 E F G H@2 I J B@2 K@2 L@4 ~@6 M N O@2 P@2 Q@2 R S T U@5 ~@28 V W X Y ~@12 V W X Z AA AB AC AD AE AF AG
  AH AI AJ@2 AK AL AM AN AO AP AQ AR AS AT AU AV@2 AW@3 ~
>`.pickRestart({
  A: "~@3 [d3,a3,d4,f#4]", // D
  B: "[~ [d2,a2,f#3,d4]@4 [f#3,d4,a4,c#5]@4 a4@4 g4@2 f#4@2 [e3,d4,g4,b4]@4 [a2,a3,e4,a4]@3, ~@6 [g3,d4,b4]@5 ~@5]/2", // D Dmaj7 Em7 A5 G
  C: "[~ a4@2 g4 f#4 g4@2 f#4@2 ~@4 [a1,a2]@4 [a3,c#4,g4,a4]@4 [d3,a3,d4,f#4,a4]@3, ~@2 [b2,d4]@15 ~ [c#3,g3,a3,e4]@15 ~@15, ~ a3@4 g3@4 ~@15]/2", // A A7 D Bm A7
  D: "[~ [d2,a2,f#3,d4]@4 [f#3,d4,a4]@4 e4@4 d4@4 [f#3,a3,c#4,a4]@4 [d3,f#4,a4,b4]@3, ~@9 [e3,b3,g#4]@8 ~@7]/2", // D F#m Bm7 E
  E: "~ [e3,e4,a4,c#5]@4 [d3,e4,g#4,b4]@4 [c#3,e4,a4,e5]@3", F: "~ [f#3,a3,e4,a4]@4 [g#3,b3,e4,b4]@4 [a3,c#4,e4,c#5]@3",
  G: "~ [d3,c#4,f#4,c#5]@4 e4@2 d4@2 [f#3,c#4,f#4,a4]@3, ~@5 [e3,g#4]@4 ~@3", // Dmaj7 F#m E
  H: "[~ [f#3,a4]@2 [e3,g#4]@2 b4@2 a4@2 c#5@2 b4@2 [b2,e4,b4]@2 [d3,e3,e4,g#4]@2 [c#3,e3,e4,f#4,a4]@2 [b2,e3,d4,e4,g#4,b4]@2 [a2,e3,c#4,e4,a4,c#5]@3, ~ [b2,d4]@4 e3@10 ~@9, ~@5 [c#3,e4]@4 [d3,f#4]@4 ~@11]/2", // F#m E E5 E7 F#m7 E7 A Bm …
  I: "~ [c#2,c#3,a3,e4,a4]@4 [d2,d3,a3,b3,f#4,a4]@4 [e2,e3,d4,e4,a4]@3", // A Bm7 Dsus2
  J: "~ [e2,e3,d4,e4,g#4]@4 [a2,e3,c#4,e4,a4]@4 [d3,a3,d4,f#4]@3", // E7 A D
  K: "[~ a4@2 g4 f#4 g4@2 f#4@2 [c#3,g3]@4 [a1,a2]@4 [a2,a3,c#4,g4]@4 [d3,a3,d4,f#4]@3, ~@2 [b2,d4]@15 ~@31, ~@2 a3@8 g3@8 [a3,e4]@15 ~@15]/2", // C#dim A A7 D Bm A5
  L: "[~ [d2,a2,f#3,d4]@4 [f#2,f#3,d4,a4,c#5]@4 a4@4 g4@2 f#4@2 [e2,e3,d4,g4,b4]@4 a4 g4 [b2,f#3,d4,f#4]@2 [g2,b3,d4,e4]@4 [a2,g3,a3,c#4]@4 [d2,d3]@4 [d1,d2]@4 ~@7, ~@18 [g2,g3,d4,b4]@15 ~@9 [a2,a3,c#4]@4 ~@20 [f#3,a3,d4]@15 ~@15]/4", // D Dmaj7 Em7 Bm Em7 A7 D G …
  M: "~@3 [c#3,c#4,f#4,a4]", N: "~ [c#3,b3,c#4,f4,g#4]@4 [f#2,c#3,a3,c#4,f#4]@4 [f#2,a2,d3,a3,d4,a4]@3",
  O: "[~ [d2,a2,d3,f#3]@4 [f#2,d3,a3,d4,a4,c#5]@4 [a3,a4]@4 [g3,g4]@2 [f#3,f#4]@2 [e2,b2,g3,b3,d4,g4,b4]@4 [a2,g3,a3,e4,a4]@3, ~@6 [g2,d3,b3,d4,b4]@5 ~@5]/2", // D Dmaj7 A G F# Em7 A7 G
  P: "[~ [a3,a4]@2 [g3,g4] [f#3,f#4] [g3,g4]@2 [f#3,f#4]@2 [c#3,g3]@4 [a1,a2]@4 [a2,g3,a3,c#4,g4,a4]@4 [d3,f#3,a3,d4,f#4,a4]@3, ~@2 [b2,d3,d4]@8 [b2,d4]@8 [a3,e4]@15 ~@15]/2", // A G F# G F# C#dim A A7 …
  Q: "[~ [d2,a2,f#3,a3,d4,f#4]@4 [f#2,d3,a3,d4,a4,c#5,d5]@4 [a3,a4]@4 [g3,g4]@2 [f#3,f#4]@2 [g2,d3,g3,b3,d4,g4,b4]@4 [e2,e3,b3,e4,g4,b4]@3, ~@6 [g2,d3,d4,b4,d5]@5 ~@5]/2", // D Dmaj7 A G F# G Em G
  R: "~ [a3,c#4,f#4]@4 [g3,a3,c#4,e4]@4 [f#3,a3,d4,a4]@3", S: "~ [b3,d4,a4,d5]@4 [c#4,e4,a4,e5]@4 [d4,f#4,a4,f#5]@3",
  T: "~ [g2,d3,g3,b3,f#4,b4]@4 [a3,f#4]@2 [g3,e4]@2 [b2,d3,f#3,d4]@3, ~@5 [a2,c#4,a4]@4 ~@3", // Gmaj7 D C Bm A
  U: "[~@2 [e2,b3,d4,g4]@4 [g2,a3,c#4]@4 e4@4 d4@4 f#4@4 e4@4 ~ [e2,c#4,g4,c#5]@4 [g2,a2,c#4,e4,a4]@4 [f#2,a2,d4,a4,b4]@4 [e2,a2,c#4,g4,a4,c#5]@4 ~ [d2,a2,d4,f#4,a4,d5]@8 [f#1,d2,f#2,a4,d5,a5]@8 ~ [g1,g2,d4,e4,b4,d5]@8 [a1,a2,g3,a3,d4,g4,a4]@8 ~ [a3,d4,e4,g4,a4,d5,e5,g5,a5]@8 [a2,g3,a3,c#4,g4,a4]@8 ~ [d2,a2,f#3,d4,f#4,a4,d5]@8 [d1,d2]@8 ~@9, ~@10 a2@21 ~@89, ~@10 [f#2,a3,a4]@8 [g2,b3,b4]@9 ~@93]/5", // Em7 A7 C#dim A7 Bm7 A7 D Em7 …
  V: "~@8 [d3,b3,e4,g4] ~@3", W: "[c3,a3,e4,g4]@2 ~@6 [f#3,d4,a4,d5]@3 c5",
  X: "b4@2 g5 ~ [c2,c3,e4,g4,a4] ~ a4 ~ [d2,d3,c4,f#4,a4] ~ a4 ~, [g3,d4,g4] ~@2", // Am7 D7 G5
  Y: "[g2,d3,b3,d4,g4]@2 ~@6 [g1,g2]@2 ~@6 d4 d4@4 ~ e4 ~, ~@17 e4 ~@6", Z: "[g2,d3,b3,d4,g4] ~@3 [g1,g2] ~@7",
  AA: "[d3,a3,d4,f#4] [d2,a2,f#3,d4] [f#3,d4,a4,c#5]", AB: "a4@2 g4 f#4 [e3,d4,g4,b4]@2, [g3,d4,b4]@5 ~@3",
  AC: "[a2,a3,e4,a4]@4 a4@2 g4 f#4 g4@2 f#4@2, ~@8 [b2,d4]@15 ~, ~ a3 g3", // A5 Bm
  AD: "~ [a1,a2] [a3,c#4,g4,a4], [c#3,g3,a3,e4]@5 ~@3", AE: "[d3,a3,d4,f#4,a4] [d2,a2,f#3,d4] [b2,f#3,d4,a4]",
  AF: "e4 d4 [f#3,a3,c#4,a4], [e3,b3,g#4]@2 ~", AG: "[d3,f#4,a4,b4] [e3,e4,a4,c#5] [d3,e4,g#4,b4]",
  AH: "[c#3,e4,a4,e5] [f#3,a3,e4,a4] [g#3,b3,e4,b4]", AI: "[a3,c#4,e4,c#5]@2 [d3,c#4,f#4,c#5]@2 e4 d4, ~@2 [e3,g#4]",
  AJ: "[[f#3,a3,c#4,a4]@2 [f#3,a4] [e3,g#4] b4 a4 c#5 b4 [b2,e4,b4] [d3,e3,e4,g#4] [c#3,e3,e4,f#4,a4] [b2,e3,d4,e4,g#4,b4], ~@2 [b2,d4]@2 e3@5 ~@3, ~@2 [c#3,e4] [d3,f#4] ~@2]/2", // F#m E E5 E7 F#m7 E7 Bm C#m …
  AK: "[a2,e3,c#4,e4,a4,c#5] [c#2,c#3,a3,e4,a4] [d2,d3,a3,b3,f#4,a4]", // A Bm7
  AL: "[e2,e3,d4,e4,a4] [e2,e3,d4,e4,g#4] [a2,e3,c#4,e4,a4]", // Dsus2 E7 A
  AM: "[d3,f#3,a3,d4,f#4] [d2,a2,d3,f#3] [f#2,d3,a3,d4,a4,c#5]", // D Dmaj7
  AN: "[a3,a4]@2 [g3,g4] [f#3,f#4] [e2,b2,g3,b3,d4,g4,b4]@2, [g2,d3,b3,d4,b4]@5 ~@3", // A G F# Em7 G
  AO: "[a2,g3,a3,e4,a4]@4 [a3,a4]@2 [g3,g4] [f#3,f#4] [g3,g4]@2 [f#3,f#4]@2, ~ [b2,d3,d4] [b2,d4]", // A7 A G F# G F# Bm
  AP: "[c#3,g3] [a1,a2] [a2,g3,a3,c#4,g4,a4], [a3,e4]@5 ~@3", // C#dim A A7 A5
  AQ: "[d3,f#3,a3,d4,f#4,a4] [d2,a2,f#3,a3,d4,f#4] [f#2,d3,a3,d4,a4,c#5,d5]", // D Dmaj7
  AR: "[a3,a4]@2 [g3,g4] [f#3,f#4] [g2,d3,g3,b3,d4,g4,b4]@2, [g2,d3,d4,b4,d5]@5 ~@3", // A G F# G
  AS: "[e2,e3,b3,e4,g4,b4] [a3,c#4,f#4] [g3,a3,c#4,e4]", AT: "[f#3,a3,d4,a4] [b3,d4,a4,d5] [c#4,e4,a4,e5]",
  AU: "[d4,f#4,a4,f#5]@2 [g2,d3,g3,b3,f#4,b4]@2 [a3,f#4] [g3,e4], ~@2 [a2,c#4,c#5]", // D Gmaj7 D C A
  AV: "[[b2,f#3,d4,d5]@8 [e2,b3,d4,g4]@4 [g2,a3,c#4]@4 e4@4 d4@4 f#4@4 e4@4 ~ [e2,c#4,g4,c#5]@4 [g2,a2,c#4,e4,a4]@4 [f#2,a2,d4,a4,b4]@4 [e2,g2,b3,e4,b4]@3, ~@16 a2@21 ~@11, ~@16 [f#2,a3,a4]@8 [g2,b3,b4]@9 ~@15]/2", // Bm Em7 A7 C#dim A7 Bm7 Em F#m …
  AW: "[~@2 [b1,f#2,b2,d4,f#4,b4,d5]@8 [f#1,d2,f#2,a4,d5,a5]@8 ~ [g1,g2,d4,e4,b4,d5]@8 [a1,a2,g3,a3,d4,e4,g4,a4]@9 [a3,d4,e4,g4,a4,d5,e5,g5,a5]@9 [a2,g3,a3,c#4,g4,a4]@9 ~ [f#3,a3,d4,f#4]@9 [f#3,a3,d4,f#4]@8, ~@55 [d2,a2]@17, ~@16 [d5,f#5,a5,d6] ~]/3", // Bm D Em7 Asus4 A7 D D5 D
})).s("gm_piano").gain(0.4)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@21 A B C D E B C F ~@15 G H I J K L M N G H I J K L M O P Q R S T U V W G H X J Y ~@3 P Q R S T U V W G H X J Y ~@31
>`.pickRestart({
  A: "~@3 [c#2,a2,e3,a3,e4]", B: "~ e4@2 f#4 g#4 e5@2 f#5 g#5 [b3,f#4,d5,a5]@3, ~ [c#3,a3,a4]@4 [c#4,e4,a4]@4 ~@3",
  C: "~ d4@2 e4 f#4 d5@2 e5 f#5 [a3,e4,c#5,g#5]@3, ~ [e3,b3,g#4]@4 [d4,e4,g#4]@4 ~@3", // Amaj7 E E7
  D: "~ [d3,c#4,f#4]@4 ~@2 b4@2 [c#3,c#4,f#4,a4]@3, ~ c#5@6 ~@5, ~@5 [b2,f#3,d4,f#4]@4 ~@3", // Dmaj7 F#m Bm
  E: "~ [c#3,b3,c#4,f4,g#4]@4 [f#2,c#3,a3,c#4,f#4,a4]@4 [c#2,a2,e3,a3,e4]@3", // C#7 F#m A
  F: "~ [d3,a3,c#4,f#4,c#5]@4 [b2,f#3,d4,f#4,b4]@4 ~@3", G: "~@4 [g3,b3,d4,g4] ~@3 [e3,b3,e4,g4] ~@3",
  H: "[c3,a3,e4,g4]@5 ~@3", I: "[d3,c4,d4,f#4]@15 ~ [a3,b3] [g#3,a3] ~@2 b3@2 c4@2, ~@2 [c3,d3,f#3]",
  J: "d4@4 g3 ~@3 g3@8 ~@8, [b1,g2,d3]@5 ~@3", K: "~@4 [e3,b3,e4,g4] ~@3 [d3,b3,e4,g4] ~@3",
  L: "[c#3,a3,e4,g4]@4 ~@4 [c#3,a3,e4,a4]@3 g4", // A7 A
  M: "[d4,f#4]@2 d5 ~ [g1,g2,b3,d4,e4] ~ e4 ~ [a1,a2,g3,c#4,e4] ~ e4 ~, [d3,a3] ~@2", // D Em7 A7 D5
  N: "[d2,a2,f#3,d4] ~@3 [d1,d2] ~@7", O: "[d2,a2,f#3,d4]@2 ~@6 [d1,d2]@2 ~@6 d4 d4@4 ~ e4 ~, ~@17 e4 ~@6",
  P: "f#4@8 [d2,d3]@8 f#5 f#5@4 ~ g5@2, ~@17 g5 ~@6", Q: "a5@8 [d2,d3]@8 b3 b3@4 ~ d4 ~, ~@17 d4 ~@6",
  R: "g4@8 [d2,d3]@8 g5 g5@4 ~ a5 ~, ~@17 a5 ~@6", S: "b5 [d2,d3] ~",
  T: "[d1,d2,d4,g#4,d5] [d1,d2,d4,g#4,b4] [d1,d2,c#4,a4,c#5]", U: "[d1,d2,f#4,c5] [d1,d2,c4,f#4,a4] [d1,d2,b3,g4,b4]",
  V: "[d1,d2,e4,g4] [d1,d2,d4,f#4] [d1,d2,c4,e4]", W: "b3 a3 ~, [d1,d2,d4]@2 ~",
  X: "[d3,a3,c4,f#4]@15 ~ [a3,b3] [g#3,a3] ~@2 b3@2 c4@2, ~@2 [c3,d3,f#3]", Y: "~@4 [e3,b3,e4,g4] ~@7",
})).s("gm_piano").gain(0.2)

stack(piano, piano_soft)

More by Fritz Kreisler