Strudelify

Nearer My God to Thee

Lowell Mason

KeyG majorTempo60 bpm
0:00/0:00
// Nearer My God to Thee — Lowell Mason
// 60 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4233286; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 72 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · violin · "Violin II"
const violin = note(`<
  ~@4 A B C D E F E G H B C D I B C J I B C D K G K L D M D@2 N M D@2 N M O P K G K L N M O P I B C J I B C D K G K L I
  B C D N M D@2 N M O P
>`.pickRestart({
  A: "d4@2 c4 b3", B: "e4@3 c4 c4@4", C: "b3 d4!3", D: "d4", E: "g4@2 g4!2", F: "g4@3 g4 g4@4", G: "d4@3 d4 d4@4",
  H: "d4@2 d4 b3", I: "d4@2 a3 b3", J: "g4 f#4", K: "d4@2 e4 d4", L: "d4@3 ~ c4@4", M: "e4", N: "d4@3 c4",
  O: "g3 b3 a3 c4", P: "b3",
})).s("gm_violin").gain(0.3)

// other · viola
const viola = note(`<
  ~@8 A B A C D E F G H I J K H I L G M E M N O P L G Q I J R Q I L G M E M S Q I L G H I J K H I L G M E M N H I L G Q
  T J R Q I L G
>`.pickRestart({
  A: "b3@2 c4 b3", B: "b3@3 d4 b3@4", C: "a3@3 g3 f#3@4", D: "g3@2 f#3 g3", E: "g3@3 g3 g3@4", F: "g3 b3 a3 c4",
  G: "b3", H: "d4!2", I: "c4!2", J: "b3!2", K: "c4 d4", L: "b3 c4", M: "g3@2 g3!2", N: "g3 c3", O: "d4", P: "c4",
  Q: "b3@2 f#3 g3", R: "f#3", S: "f#3@3 d3 c3@4", T: "g3!2",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  ~@8 A B C D E F G H I J I K I J L M N O N P Q J R S E F T H E F R S N O N P E F R S I J I K I J L M N P N P I J L S E
  F T H E F R S
>`.pickRestart({
  A: "g3@2 g3!2", B: "g3@3 g3 g3@4", C: "g3@2 c3 g3", D: "f#3@3 g3 d3@4", E: "g3@2 d3 e3", F: "c3@3 c3 c3@4", G: "d3!2",
  H: "d3", I: "g2 d3 g3 g2", J: "c2 g2 e3 c2", K: "c3@3 ~ d2@2 f#2@2", L: "g2 d2", M: "g2 d3 g3 a3", N: "b3@2 c4 b3",
  O: "b3@3 g3 b3@4", P: "b3@3 g3 f#3@4", Q: "g3 d3 g2@2", R: "d3 d2", S: "g2", T: "g2@2 b2 g2",
})).s("gm_cello").gain(0.3)

stack(violin, viola, cello)