Strudelify

glory to you in the highest o come let us adore

Matt Redman

KeyB minorTempo120 bpm
0:00/0:00
// glory to you in the highest o come let us adore — Matt Redman
// 120 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5698640; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 50 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · violin
const violin = note("<A@4 B@2 C@2 A@4 B@2 C@2 D E F@2 G@3 H@2 I@4 J@16 K@5>".pickRestart({
  A: "[d4@4 a#3@4 b3@2 a#3@4 f4@4 f4@2 f#4@4 e4@6 e4@4 e4@2 e4@3 f4@3 e4@2 d#4@8 g#3@8 ~@4]/4", B: "[~@4 f#4 d4@11]/2",
  C: "[a3@4 b3@3 b3@2 a4@3 a#3@8 g3@12]/2", D: "~ e5@2 d5 c5@2 b4@2", E: "a#4 e5 d5 c5", F: "[a4 c5 b4@6]/2",
  G: "[f4@2 e4@2 d4@2 c4 b3@3 f4@2 e4@2 c#4@3 b4 a4 g4 f#4@2 d4@2]/3", H: "[c#4!2 b3 c#4@5]/2",
  I: "[~@2 g#3 a3@3 d4 e4@3 f#4 g4@5]/4",
  J: "[f#4@4 f#4@2 a4@4 f#4@16 a3@2 f#4@3 a4@3 g4@2 f#4@4 c#4@4 b3@28 g#3@4 a3@12 d4@4 e4@12 f#4@4 g4@20]/8",
  K: "[f#4@4 f#4@2 a4@4 f#5@16 a4@2 f#4@3 a4@3 g4@2 f#4@4 c#4@4 b3@28 ~@8]/5",
})).s("gm_violin").gain(0.3)

// other · violin
const violin_2 = note("<A@4 ~ B C@2 A@4 ~ B C@2 D E F@2 G@3 H@2 ~ I@4 J@2 K@5 L@8 M@5>".pickRestart({
  A: "[d4@4 d4@4 g3@2 a#3@4 c#4@4 c#4@2 d4@4 c#4@6 c4@4 c4@2 c4@3 d4@3 c4@2 c#4@8 g#3@8 ~@4]/4", B: "a4 f#4@7",
  C: "[f#4@4 f#4@3 g4@2 f#4@3 c#4@8 e4@12]/2", D: "~ g4@2 a4 g4@2 f#4@2", E: "f4 g5 f#5 g5", F: "[g5 f#5 g5@6]/2",
  G: "[d4@2 c4@2 b3@2 a3 g3@3 d4@2 b4@2 a#3@3 g4 f#4 b4 d4@2 f#4@2]/3", H: "[e4 f4 c#4 g3@5]/2",
  I: "[e4@4 b3@4 b3@2 a3@4 c#4@4 e4@2 d4@4 f#4@6 e4@4 e4@2 e4@3 f#4@3 e4@2 d#4@8 g3@8 ~@4]/4", J: "[~@4 f#4 d4@11]/2",
  K: "[a3@4 b3@3 c#4@2 b3@3 a#3@8 g3@4 b3@4 a3@12 f#4@4 b3@12 d5@4 b4@20]/5",
  L: "[a4@4 c#5@2 e5@4 c#5@16 a4@2 c#5@3 e5@3 d5@2 c#5@4 a4@4 f#4@28 b3@4 f#4@12 f#4@4 b3@12 d5@4 b4@20]/8",
  M: "[a4@4 c#5@2 e5@4 d6@16 a4@2 c#5@3 e5@3 d5@2 c#5@4 a4@4 d4@28 ~@8]/5",
})).s("gm_violin").gain(0.3)

stack(violin, violin_2)