Strudelify

Canon and Gigue in D major P.37

Andrew Dunlap

KeyD majorTempo80 bpm
0:00/0:00
// Canon and Gigue in D major P.37 — Andrew Dunlap
// 80 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/486496; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 41 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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("<~@7 A B C D E C D F G ~@2 H I J K H I J K L M D E L M D E C D F G N@3>".pickRestart({
  A: "e4@3 f#4", B: "f#4 e4", C: "d4 c#4", D: "b3 a3", E: "b3 c#4", F: "g3 f#3", G: "g3 a3", H: "f#3 a3", I: "d3 f#3",
  J: "b2 a2", K: "b2 c#3", L: "f#4 a4", M: "d4 f#4", N: "[d4@11 d4]/3",
})).s("gm_cello").gain(0.3)

// other · cello · "Violoncello"
const cello_2 = note("<A B A B A B A B A B A B C D E F G H I J K L M N O P Q R S T Q@2 U V W U S T X@3>".pickRestart({
  A: "d3 a2 b2 f#2", B: "g2 d2 g2 a2", C: "f#3 e3", D: "d3 c#3", E: "b2 a2", F: "b2@4 c#3@3 c#3", G: "f#3 c#3 d3 a2",
  H: "b2 f#2 b2 c#3", I: "~ a2 ~ c#3", J: "~ f#2 ~ a2", K: "~ d2 ~ c#2", L: "~ d2 ~ e2", M: "~ d3 ~ c#3",
  N: "~ b2 ~ a2", O: "~ g2 ~ f#2", P: "~ g2 ~ a2", Q: "a2!2 c#3!2", R: "f#2!2 a2!2", S: "d2!2 c#2!2", T: "d2!2 e2!2",
  U: "f#2!2 e2!2", V: "f#2!2 g2!2", W: "a2!2 g2!2", X: "[d2@11 d2]/3",
})).s("gm_cello").gain(0.4)

stack(cello, cello_2)