Strudelify

EKG 488 Variation of Abide with Me (Herr bleib bei mir)

nach W.H. Monk

KeyE♭ majorTempo80 bpm
0:00/0:00
// EKG 488 Variation of Abide with Me (Herr bleib bei mir) — nach W.H. Monk
// 80 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5111248; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 16 bars on a 32-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 · [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 · "unbenannt"
const piano = note("<A B C@2 D E F@2 G H I J K L M@2>".pickRestart({
  A: "[eb4,g4]@13 [eb4,g4]@3 [d4,g4]@5 [d4,f4]@8 eb4@3", B: "eb4@13 eb4@3 g4@5 ab4@3 bb4@8, ~ eb4",
  C: "[[eb4,c5]@8 [d4,bb4]@8 [eb4,bb4]@5 [f4,ab4]@8 [eb4,g4]@35]/2", // Cm Gm Eb5 Fm Eb
  D: "g4@13 f4@3 g4@5 ab4@3 [eb4,bb4]@8, bb3@2 eb4 ~", E: "c5@5 eb5@8 d5@3 c5@8 bb4@8, eb4!2",
  F: "[ab4@5 f4@8 f4@3 [eb4,g4]@8 [eb4,a4]@5 [d4,bb4]@35, eb4@13 ~@51]/2", // Eb Ebdim Gm
  G: "[eb4,g4]@13 [eb4,g4]@3 [d4,g4]@5 [d4,f4]@11", H: "eb4@16 ~@5 f4@3 ab4@5 g4@3, ~ bb4",
  I: "[f4,ab4]@5 [eb4,bb4]@3 ab4@5 ~@3 e4@5 [d4,g4]@8 [d4,e4]@3, ~ eb4 ~@2, ~@13 ab4@8 ~@11", // Fm Eb5 G5 Dsus2
  J: "c4@13 bb3@3 c4@5 ~@3 eb4@5 c4@3, f4@21 f4@11", K: "d4@8 ~@21 ab4@3, f4@16 g4@13 ~@3, ~ c4@2 d4",
  L: "eb4@5 ~@16 eb4@3 f4@3 g4@2 [f4,ab4]@3, g4@8 f4@13 ~@11, ~@5 d4@11 c4@8 c4@5 ~@3", // Fm
  M: "[g4@5 f4@5 ~ eb4@5 g4@5 ~@11 bb3@32, eb4@11 ~@5 d4@8 c4@8 ~@32, ~@21 f4@8 eb4@35]/2",
})).s("gm_piano").gain(0.3)

// chords · piano · "unbenannt1"
const piano_2 = note("<A B C D E F G H I J K L M N O P>".pickRestart({
  A: "eb3 d3 [c3,bb3] [bb2,ab3], bb3 ~", B: "[g2,bb3] [ab2,ab3] bb2 g2, ~ g3",
  C: "eb3@5 ~@8 g3@3 ab3@5 c4@3 [d3,d4]@8, ab2 bb2 c3 ~, ~@5 f3@8 ~@19", D: "~@5 eb4@3 d4@5 c4@8 bb3@3 g3@5 f3@3, eb3",
  E: "eb3 [d3,bb3] [c3,ab3] [bb2,g3]", F: "ab2@8 ~@13 d3@3 [eb3,g3]@8, ab3@2 ab3 ~, ~@8 c3@13 ~@11",
  G: "[f3,c4]@8 eb3@5 d3@3 [c3,bb3]@8 [a2,eb3]@8, ~ bb3 ~@2", H: "bb2@5 eb3@3 d3@5 c3@8 bb2@3 g2@5 f2@3, f3",
  I: "[eb2,g3]@8 f2@5 g2@3 [ab2,bb3]@8 [bb2,ab3]@8, ~ ab3 ~@2", // Eb Absus2 Bb7
  J: "~@5 bb3@3 c4@5 d4@3 ab2@8 ~@5 d4@3, c3@8 bb2@8 eb4@13 ~@3, ~@3 g2",
  K: "c4@8 ~@5 bb2@3 c3@8 d3@5 e3@3, ab2@13 ~@19, ~ c4 bb3@2", L: "f3@8 c3@8 d3@8 eb3@5 g3@3, ab3",
  M: "ab3@13 ~@11 bb3@8, bb3@2 bb3 ~, ~@13 g3@8 f3@11", N: "[eb3,bb3] [bb2,ab3] [c3,g3] [ab2,c4]",
  O: "bb2@2 bb2 [d3,ab3], bb3@3 ~", P: "[eb3,g3]",
})).s("gm_piano").gain(0.3)

stack(piano, piano_2)