Strudelify

Stille Nacht heilige Nacht H.145

Franz Xaver Gruber

KeyB♭ majorTempo75 bpm
0:00/0:00
// Stille Nacht heilige Nacht H.145 — Franz Xaver Gruber
// 75 bpm, 6/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6147475; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 12 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/6)

// 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 · trumpet
const trumpet = note("<A@2 B C D A D A E F G H>".pickRestart({
  A: "f4@3 g4 f4@2 d4@6", B: "c5@2 c5 a4@3", C: "bb4@2 bb4 f4@3", D: "g4@4 g4@2 bb4@3 a4 g4@2",
  E: "c5@4 c5@2 eb5@3 c5 a4@2", F: "bb4 d5", G: "bb4@3 f4 d4@2 f4@3 eb4 c4@2", H: "bb3@2 ~",
})).s("gm_trumpet").gain(0.2).pan(0.1)

// other · trombone · "Posaune"
const trombone = note("<A B C D E B E F G H I J>".pickRestart({
  A: "bb3@2 bb3 f3@3", B: "bb3@3 bb3 bb3@2 f3@6", C: "a3@2 a3 c4@3", D: "f3 bb3 d4 bb3@3",
  E: "bb3@4 bb3@2 bb3@3 bb3 bb3@2", F: "bb3@3 bb3 bb3@2 f3@2 d4@2 bb3@2", G: "a3@4 a3@2 c4@3 c4 eb4@2", H: "d4 bb3",
  I: "f3@4 f3@2 f3@3 eb4 eb4@2", J: "d4@2 ~",
})).s("gm_trombone").gain(0.2).pan(0.7)

// bass · tuba
const bass = note("<A B C D E F G B H I J K>".pickRestart({
  A: "bb2@2 bb2 bb2@3", B: "bb2@3 bb2 bb2@2 bb2@6", C: "f2@2 f2 f2@3", D: "bb2@2 bb2!2 c3 d3",
  E: "eb3@4 eb3@2 eb3@3 eb3 eb3@2", F: "bb2@3 bb2 bb2@2 bb2@2 c3@2 d3@2", G: "eb3@4 eb3@2 g3@3 f3 eb3@2",
  H: "f3@4 f3@2 f3@3 f3 f3@2", I: "bb2@4 d3 bb2", J: "d3@4 d3@2 f2@3 c3 f2@2", K: "bb2@2 ~",
})).s("gm_tuba").gain(0.2).pan(0.9)

stack(trumpet, trombone, bass)