Strudelify

Maria durch ein Dornwald ging

H.B.Noxe

KeyF majorTempo80 bpm
0:00/0:00
// Maria durch ein Dornwald ging — H.B.Noxe
// 80 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2, 3/4 at bar 11) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5839458; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 11 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 · alto sax · "Alto Saxophone"
const alto_sax = note("<A B@2 C D E F G H I@2>".pickRestart({
  A: "~@3 eb4", B: "[g4@3 g4 c5@6 b4@2 d5 c5 bb4 a4]/2", C: "g4@2 c5!2 d5@4", D: "eb5@6 c5 d5",
  E: "eb5@3 d5 eb5@2 c5@2", F: "d5@3 c5 bb4@4", G: "g4@3 c5!3 d5 c5", H: "bb4@3 c5 bb4@2 g4@2",
  I: "[~@2 eb4 d4 c4@10 ~@2]/2",
})).s("gm_alto_sax").gain(0.26)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<A B@2 C@2 D E@2 F G H>".pickRestart({
  A: "~@3 eb4", B: "[eb4@3 d4 c4@2 g3@3 f3 d3 e3 g3 a3 g3 gb3]/2", C: "[g3@2 g3!2 bb3@10 ~@2]/2", D: "bb3@6 g3 ab3",
  E: "[bb3@2 c4@2 d4@2 c4@3 bb3 c4 g3 f3 eb3 d3 c3]/2", F: "d3 c3 d3!2", G: "~@2 g3 f3 ab3@2 eb3@2",
  H: "f3 g3 c4@4 ~@2",
})).s("gm_tenor_sax").gain(0.25)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note("<~ A B C D E F G H I@2>".pickRestart({
  A: "c3@2 g2 d2 c2@2 eb2 g2", B: "c3@2 b2 a2 g2@4", C: "eb3@2 d3 c3 bb2@2 ab2@2", D: "g2 f2 eb2 bb2",
  E: "eb2@2 g2 bb2 eb3@2 d3 c3", F: "bb2@2 ab2@2 g2@3 ~", G: "c2", H: "d2@2 g2!2",
  I: "[c3@3 bb2 ab2 g2 eb2@3 d2 c2@4 ~@2]/2",
})).s("gm_baritone_sax").gain(0.25)

stack(alto_sax, tenor_sax, baritone_sax)