Strudelify

it is well with my soul

Christopher A. Gray

KeyD♭ majorTempo90 bpm
0:00/0:00
// it is well with my soul — Christopher A. Gray
// 90 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5972377; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 71 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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 · trombone
const trombone = note(`<
  ~@7 A B C D E F G H I J K H L M N B C D E F G O P Q R S T G U ~@6 V B C D E F G U ~@3 W L M N B C D E F G O P Q R S T
  G X
>`.pickRestart({
  A: "~@3 ab2", B: "db3@2 db3 f3", C: "gb3@2 gb3 f3", D: "eb3@2 eb3!2", E: "ab3@4 ab3@2 ab3 gb3", F: "f3@2 f3 gb3",
  G: "ab3@4 ab2@3 ab2", H: "db3@3 db3", I: "db3@4 db3@2 db3 f3", J: "ab3@2 gb3 f3", K: "eb3@2 ab2!2", L: "bb2@2 c3 db3",
  M: "db3@2 eb3!2", N: "ab2@3 ab3", O: "db3 ~", P: "~@2 db3 f3", Q: "ab3 ~", R: "~@2 ab2!2", S: "db3@2 db3!2",
  T: "gb3@2 gb3!2", U: "db3@3 ~", V: "~@3 ab3", W: "~@3 db3", X: "db3",
})).s("gm_trombone").gain(0.3)

// other · trombone · soft notes
const trombone_soft = note("<~@4 A B C D ~@27 E F G H I J K L ~@6 A M F N O ~@17>".pickRestart({
  A: "~@3 db3", B: "bb2@2 c3 db3", C: "db3@2 eb3!2", D: "ab2@3 ~", E: "~@3 ab3", F: "ab3@2 gb3 f3", G: "f3@2 eb3 f3",
  H: "gb3 bb3 ab3 gb3", I: "f3@3 ab3", J: "db4@2 c4 bb3", K: "bb3@2 ab3 g3", L: "ab3@3 ~", M: "db3@4 db3@2 db3 f3",
  N: "eb3@2 ab2!2", O: "db3@3 ~",
})).s("gm_trombone").gain(0.2)

stack(trombone, trombone_soft)