Strudelify

Come Holy Ghost

Maurus

KeyF majorTempo100 bpm
0:00/0:00
// Come Holy Ghost — Maurus
// 100 bpm, 3/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 5 "Horn in F" french horn (copy of ch 6 "Trombone" tuba)
// note: Transcription provider: pdmx. https://musescore.com/score/5723700; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 20 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<A B C D E@2 F G A B H D I J K D E L K B>".pickRestart({
  A: "bb3!3", B: "bb3", C: "d4 eb4 f4", D: "eb4", E: "eb4 d4 eb4", F: "eb4 f4 eb4", G: "d4", H: "f4 eb4 d4",
  I: "eb4 d4 db4", J: "c4@2 eb4", K: "eb4@2 d4", L: "eb4@2 eb4",
})).s("gm_trumpet").gain(0.21)

// other · tuba · "Trombone"
const tuba = note("<A B C D E F@2 D G B C D H I F D J K L B>".pickRestart({
  A: "bb2!3", B: "g3", C: "bb3 a3 bb3", D: "bb3", E: "bb3!3", F: "bb3@2 bb3", G: "f3 g3 ab3", H: "g3 ab3 g3",
  I: "ab3@2 ab3", J: "g3 ab3 bb3", K: "ab3@2 c4", L: "bb3@2 ab3",
})).s("gm_tuba").gain(0.39)

// bass · tuba
const bass = note("<A B C D E F G H I D J D K L M N O P Q B>".pickRestart({
  A: "bb2!3", B: "eb2", C: "bb2 c3 d3", D: "eb3", E: "eb2 ab2 g2", F: "g2 f2 eb2", G: "eb3 d3 eb3", H: "bb2",
  I: "d3 eb3 f3", J: "d3 c3 bb2", K: "eb3 f3 eb3", L: "ab2@2 c3", M: "bb2@4 bb2 ab2", N: "g2", O: "eb2 f2 g2",
  P: "ab2@2 f2", Q: "bb2@2 bb2",
})).s("gm_tuba").gain(0.38)

// chords · church organ · "Organ"
const church_organ = note("<A B C D E F G H I J K D L M N O P Q R B>".pickRestart({
  A: "[bb2,bb3]!3", B: "[eb2,g3,bb3,eb4]", C: "[bb2,bb3,d4,f4] [c3,a3,eb4,f4] [d3,bb3,f4]", D: "[eb3,bb3,eb4,g4]",
  E: "[eb2,bb3,eb4,g4] [ab2,bb3,d4,f4] [g2,bb3,eb4,g4]", F: "[g2,eb4,bb4] [f2,d4,ab4] [eb2,bb3,eb4,g4], bb3@2 ~",
  G: "[eb3,eb4,g4] [d3,f4,ab4] [eb3,bb3,eb4,g4], bb3@2 ~", H: "[bb2,bb3,d4,f4]",
  I: "[d3,f3,bb3] [eb3,g3,bb3] [f3,ab3,bb3]", J: "[eb3,g3,bb3,eb4]", K: "[d3,bb3,f4] [c3,a3,eb4,f4] [bb2,bb3,d4,f4]",
  L: "[eb3,g3,eb4,bb4] [f3,ab3,d4,bb4] [eb3,g3,db4,bb4]", M: "[ab2,ab3,c4,c5]@4 bb4 ab4, ~@2 [c3,ab3,eb4]",
  N: "[bb2,bb3,eb4,g4]@4 bb2 ab2, ~@2 [bb3,d4,f4]", O: "[g2,bb3,eb4,bb4]",
  P: "[eb2,g3,eb4,bb4] [f2,ab3,d4,bb4] [g2,bb3,eb4,bb4]", Q: "[ab2,ab3,eb4,c5]@4 bb4 ab4, ~@2 [f2,c4,eb4]",
  R: "[bb2,bb3,eb4,g4]@2 [bb2,ab3,d4,f4]", // Eb Bb7
})).s("gm_church_organ").gain(0.3)

stack(trumpet, tuba, bass, church_organ)