Strudelify

you raise me up

KB

KeyC majorTempo60 bpm
0:00/0:00
// you raise me up — KB
// 60 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5923866; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 28 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/4)

// 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 · trumpet · "B♭ Trumpet 2"
const trumpet = note("<~@8 A B C B D ~@3 E F G F H I J K L K M@2>".pickRestart({
  A: "~@5 a4 g4!2", B: "a4@3 a4 g4 f4 e4 d4", C: "f4@4 f4@4 ~@2 e4@2 e4@3 a#4", D: "f4@3 ~", E: "~@5 b4!2 d5",
  F: "b4@3 b4 a4 g4 f#4 e4", G: "g4@4 d4@4 ~@2 f#4@2 f#4@3 g4", H: "g4@4 f#4@2 d5 c5", I: "b4@3 b4 c5 b4 c5 e5",
  J: "d5@2 g5@2 ~ g4 d5 c5", K: "b4@3 b4!2 a4 g4 f#4", L: "g4@4 ~ g4 d5 c5", M: "[g4@7 ~]/2",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note("<~@5 A B@2 ~ C D C E ~@3 F G H I J ~@7>".pickRestart({
  A: "~ f4!2 d4", B: "[c4 f4@5 ~@2]/2", C: "~ a3 d4 e4 f4@3 f4", D: "f4 e4 d4 c4 c4@2 g4@2", E: "f4 e4 d4 c4 c4@4",
  F: "~@3 a3", G: "~ b3 e4 f#4 g4@3 g4", H: "g4 f#4 e4 d4 d4@2 a4@2", I: "~@2 g3@2 b3@2 e4 f#4 g4@8", J: "d4 g4 f#4 ~",
})).s("gm_french_horn").gain(0.5)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft = note("<~@21 g4 [d4 ~] d4 [d4@3 d4 c4@4] [d4@3 d4 d4@4] [g4@3 g4 g4@2 g4@2] g4>")
  .s("gm_french_horn").gain(0.25)

// other · trombone
const trombone = note("<~@3 A B C D E F G H G I J K B L M N M N O P Q R S T U>".pickRestart({
  A: "f3@2 f3 a3", B: "c4", C: "d4 a#3 c4 f4", D: "f4 c4", E: "c4!2", F: "f3@2 ~ e4", G: "f4@2 d4!2", H: "c4!3 e4",
  I: "c4@2 c4 f4 c4@4", J: "a3@2 c4 a#3", K: "a3 d4", L: "f3@4 ~ d4 e4 f#4", M: "g4 e4", N: "d4@3 f#4", O: "d4 g4",
  P: "f#4 c4", Q: "d4@3 d4 d4@4", R: "b3@3 b3 c4@4", S: "b3 c4", T: "b3@3 b3 c4@2 a3@2", U: "b3",
})).s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note("<~ A@3 B C D E F G H G I J K L M N O P Q R S T U V U W>".pickRestart({
  A: "f2", B: "c2", C: "a#1", D: "a1!2", E: "c2@3 c2", F: "f2 ~ e2@2", G: "d2@3 c2 a#1@4", H: "a1@3 a1 g1@4",
  I: "a1 c2", J: "f2 d2", K: "c2@3 c2 a#1@4", L: "c2!2", M: "f2@4 ~ g2!2 f#2", N: "e2@3 d3 c3@4", O: "b2@3 b2 a2@4",
  P: "e3@3 d3 c3@4", Q: "b2 d3", R: "g2 e3", S: "d3@3 d3 c3@4", T: "d3!2", U: "g2@3 g2 g2@4", V: "d2", W: "g2",
})).s("gm_tuba").gain(0.3)

stack(trumpet, french_horn, french_horn_soft, trombone, bass)