Strudelify

Es ist ein Ros' entsprungen

Satz: Michael Praetorius

KeyD majorTempo95 bpm
0:00/0:00
// Es ist ein Ros' entsprungen — Satz: Michael Praetorius
// 95 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 6, 4/4 at bar 8, 9/8 at bar 16, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/75136; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 58 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(95/4)

// 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 · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note("<A@7 B@6 C D@5 E@7 F@6 G@3 H I J K L M N O P@2 Q@2 R@2 S T@4 U V W@2>".pickRestart({
  A: "[~@20 f#4@21 ~@3 f#4@9 [d3,f#3,a3,d4]@12 [g3,b3,d4]@12 [d3,f#3,a3,d4]@12 ~@3 c#4@21 ~@3 b3@21 ~@3 b3@21 [d3,f#3,a3]@12 [c#3,e3,a3]@12 [e3,g3]@12 ~@24 e3@12 ~@4 a3@20 ~@16 f#4@20 ~@3 f#4@9 [d2,f#3,d4]@12 [g2,g3,d4]@12 [d3,f#3,d4]@7, ~@17 [d3,a3]@24 [d3,a3]@12 ~@36 [a2,e3]@24 [b2,d3]@24 [g2,d3]@24 ~@24 [b2,b3]@24 [a2,a3]@24 [d2,a2]@24 ~@12 [d2,d3]@24 [d2,a3]@12 ~@31, ~@18 d4@23 ~ d4@11 ~@37 a3@23 ~ f#3@23 ~ g3@23 ~@36 f#3@24 ~@13 d3@23 ~@15 d4@21 ~ d4@11 ~@31, ~@236 f#3@21 ~@13 a3@23 ~@43]/7", // D G D A Em D G5 D …
  B: "[~@8 c#4@21 ~@3 b3@21 ~@3 b3@21 [d3,f#3,a3]@12 [c#3,e3,a3]@12 g3@12 ~@24 e3@12 ~@4 a3@20 ~@15 d4@9 [e2,g3,b3]@12 [f#2,f#3,a3]@12 [d2,f#3,a3]@12 [e2,e3,g#3]@12 a3@8 b3@10 c#4@25, ~@5 [a2,e3]@24 [b2,d3]@24 [g2,d3]@24 ~@24 [b2,b3]@24 [a2,a3]@24 [d2,a2]@24 ~@12 [d2,d3]@12 ~@91, ~@6 a3@23 ~ f#3@23 ~ g3@23 ~@36 f#3@24 ~@13 d3@23 ~@72 [a2,e3]@43, ~@152 f#3@21 ~@13 a3@11 ~@91]/6", // D A Em F#m D E A5 Bm …
  C: "~@5 [a2,e3,c#4]@4 [c#3,a3,e4]@4 [d3,f#3,d4]@3", // A D
  D: "[~@3 [g2,g3,d4]@12 [d3,f#3,d4]@12 ~@3 c#4@21 ~@2 b3@32 ~@11 b3@20 ~ [f#2,a3,d4]@12 [g2,g3,b3]@12 c#4@12 d4@12 e4@12 a3@12 ~@3 a3@44 ~@4, ~@9 [a2,e3]@8 [b2,d#3]@11 ~@3 [e2,b2]@8 ~@8 [a2,f#3]@8 [a2,e3]@8 [d2,a2]@16 ~, ~@29 a3@23 ~@42 e3@23 ~@73 d3@47 ~@3, ~@95 g3@21 ~@75 f#3@45 ~@4]/5", // G5 D G A5 B E5 D A5 …
  E: "[~@23 f#4@21 ~@3 f#4@9 ~ [d3,f#3,a3,d4]@12 [g3,b3,d4]@12 [d3,f#3,a3,d4]@12 ~@2 c#4@21 ~@3 b3@21 ~@3 b3@21 ~ [d3,f#3,a3]@12 [c#3,e3,a3]@12 [e3,g3]@12 ~@24 e3@12 ~@3 a3@20 ~@16 f#4@20 ~@3 f#4@9 ~ [d2,f#3,d4]@12 [g2,g3,d4]@12 [d3,f#3,d4]@3, ~@7 [d3,a3]@8 [d3,a3]@4 ~@12 [a2,e3]@8 [b2,d3]@8 [g2,d3]@8 ~@8 [b2,b3]@8 [a2,a3]@8 [d2,a2]@8 ~@4 [d2,d3]@8 [d2,a3]@4 ~@9, ~@22 d4@23 ~ d4@11 ~@37 a3@23 ~ f#3@23 ~ g3@23 ~@36 f#3@24 ~@13 d3@23 ~@14 d4@21 ~@2 d4@11 ~@27, ~@239 f#3@21 ~@14 a3@23 ~@39]/7", // D G D A Em D G5 D …
  F: "[~@11 c#4@21 ~@3 b3@21 ~@3 b3@21 ~ [d3,f#3,a3]@12 [c#3,e3,a3]@12 g3@12 ~@24 e3@12 ~@3 a3@20 ~@15 d4@9 ~ [e2,g3,b3]@12 [f#2,f#3,a3]@12 [d2,f#3,a3]@12 [e2,e3,g#3]@12 a3@8 b3@9 c#4@22, ~@3 [a2,e3]@8 [b2,d3]@8 [g2,d3]@8 ~@8 [b2,b3]@8 [a2,a3]@8 [d2,a2]@8 ~@4 [d2,d3]@4 ~@29, ~@10 a3@23 ~ f#3@23 ~ g3@23 ~@36 f#3@24 ~@13 d3@23 ~@72 [a2,e3]@39, ~@155 f#3@21 ~@14 a3@11 ~@87]/6", // D A Em F#m D E A5 Bm …
  G: "[~@19 [a2,e3,c#4]@12 [c#3,a3,e4]@12 [d3,f#3,d4]@12 [g2,g3,d4]@12 [d3,f#3,d4]@12 ~@2 c#4@21 ~@2 b3@32 ~@8, ~@79 [a2,e3]@24 [b2,d#3]@33 ~@8, ~@80 a3@23 ~@41]/3", // A D G5 D A5 B
  H: "~ b3@5 [f#2,a3,d4]@3 [g2,g3,b3]@3, [e2,b2] ~, ~ e3@23 ~@24, ~@2 g3@21 ~@25", I: "c#4 d4 e4 a3, [a2,f#3] [a2,e3]",
  J: "~ a3@11, [d2,a2], ~ d3@47, ~@2 f#3@45 ~", K: "~@26 f#4@21 ~, ~ [d3,a3], ~@25 d4@23",
  L: "~@2 f#4@9 ~ [d3,f#3,a3,d4]@12 [g3,b3,d4]@12 [d3,f#3,a3,d4]@12, [d3,a3] ~@3, ~ d4@11 ~@36", // D G D D5
  M: "~@2 c#4@21 ~@3 b3@21 ~, [a2,e3] [b2,d3], ~ a3@23 ~ f#3@23", // A5 Bm
  N: "~@2 b3@21 ~ [d3,f#3,a3]@12 [c#3,e3,a3]@12, [g2,d3] ~, ~ g3@23 ~@24", // D A G5
  O: "[e3,g3] ~@2 e3, [b2,b3] [a2,a3], ~ f#3@2 ~", // Em B A
  P: "[~@4 a3@20 ~@16 f#4@20 ~@2 f#4@9 ~ [d2,f#3,d4]@12 [g2,g3,d4]@12, [d2,a2]@2 ~ [d2,d3]@2 [d2,a3] ~@2, ~ d3@23 ~@14 d4@21 ~@2 d4@11 ~@24, ~@2 f#3@21 ~@14 a3@23 ~@36]/2", // D G5 D5 D D5
  Q: "[[d3,f#3,d4]@12 ~@2 c#4@21 ~@3 b3@21 ~@3 b3@21 ~ [d3,f#3,a3]@12, ~ [a2,e3]@2 [b2,d3]@2 [g2,d3]@2 ~, ~@13 a3@23 ~ f#3@23 ~ g3@23 ~@12]/2", // D A5 Bm G5
  R: "[[c#3,e3,a3]@3 g3@3 ~@6 e3@3 ~ a3@5 ~@3, ~ [b2,b3]@2 [a2,a3]@2 [d2,a2]@2 ~, ~@24 f#3@24 ~@13 d3@23 ~@12, ~@62 f#3@21 ~@13]/2", // A B A D5
  S: "~@2 d4@9 ~ [e2,g3,b3]@12 [f#2,f#3,a3]@12 [d2,f#3,a3]@12, [d2,d3] ~@3, ~ a3@11 ~@36", // Em F#m D
  T: "[[e2,e3,g#3]@12 a3@8 b3@10 c#4@28 ~@12 [a2,e3,c#4]@12 [c#3,a3,e4]@12 [d3,f#3,d4]@12 [g2,g3,d4]@12 [d3,f#3,d4]@12 ~@3 c#4@21 ~ b3@32 ~@5, ~@12 [a2,e3]@46 ~@72 [a2,e3]@24 [b2,d#3]@33 ~@5, ~@131 a3@23 ~@38]/4", // E A D G5 D A5 B
  U: "~@7 b3@20 [f#2,a3,d4]@12 [g2,g3,b3]@9, ~ [e2,b2]@8 ~@7, ~@5 e3@23 ~@20, ~@2 g3@7 ~@7", // D G E5
  V: "~ c#4@4 d4@4 e4@4 a3@3, ~ [a2,f#3]@8 [a2,e3]@7", // D A5
  W: "[~@7 a3@44 ~@45, ~ [d2,a2]@16 ~@15, ~@5 d3@47 ~@44, ~@2 f#3@15 ~@15]/2", // D5
})).s("gm_acoustic_guitar_nylon").gain(0.26).pan(0.2)

stack(acoustic_guitar_nylon)