Strudelify

hallelujah

Grant Maiorana

KeyC majorTempo105 bpm
0:00/0:00
// hallelujah — Grant Maiorana
// 105 bpm, 6/8, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 6/8 at bar 2) are rendered on a constant 6/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5940366; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 54 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(105/3)

// 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 · "Violin I"
const violin = note(`<
  A B C B D E F G H B I J K L M N O P Q R O P Q S T@2 ~@2 A B C B D E F G H B I J K L M N O P Q R O P Q S T@2
>`.pickRestart({
  A: "~@4 e4!2", B: "g4@2 g4 g4@2 g4", C: "a4!2 a4@3 e4", D: "a4!2 a4@3 g4", E: "a4@2 a4 a4@2 a4", F: "a4@2 g4 g4@2 e4",
  G: "g4@2 g4@3 ~", H: "~@5 e4", I: "a4@2 a4 b4@2 b4", J: "c5@2 c5 c5@2 a4", K: "c5!2 d5@3 c5", L: "d5@2 d5 d5@2 d5",
  M: "e5@2 e5 e5@2 d5", N: "d5 c5 c5@4", O: "~@3 e4@2 g4", P: "g4 a4 a4@4", Q: "~@3 a4@2 g4", R: "e4 e4@2",
  S: "e4@4 f4 e4", T: "[d4@5 c4@4 ~@3]/2",
})).s("gm_violin").gain(0.3)

// other · pizzicato strings · "Viola"
const pizzicato_strings = note(`<
  ~ A B A B C D A D A E B C D F B@2 C@2 B@2 C@2 A D A B A B A B A B C D A D A E B C D F B@2 C@2 B@2 C@2 A D A
>`.pickRestart({
  A: "~ e4 g4 ~ g4 e4", B: "~ c4 e4 ~ e4 c4", C: "~ a3 c4 ~ c4 a3", D: "~ b3 d4 ~ d4 b3", E: "~ a3 c4 ~ b3 d4",
  F: "~ g3 b3 ~ b3 g3",
})).s("gm_pizzicato_strings").gain(0.3)

// other · pizzicato strings · "Violoncello"
const pizzicato_strings_2 = note(`<
  ~ A B A B C D A D A E F C D G F@2 C@2 F@2 C@2 A D A B A H A B A B C D A D A E F C D G F@2 C@2 F@2 C@2 A D A
>`.pickRestart({
  A: "c3 c4", B: "a2 a3", C: "f3 f4", D: "g3 g4", E: "f3 g3", F: "a3 a2", G: "e3 e4", H: "a2@3 a3 ~@2",
})).s("gm_pizzicato_strings").gain(0.3)

stack(violin, pizzicato_strings, pizzicato_strings_2)

More by Grant Maiorana