Strudelify

you raise me up

Secret Garden

KeyB♭ majorTempo70 bpm
0:00/0:00
// you raise me up — Secret Garden
// 70 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3684096; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 45 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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 · french horn · "Horn in F"
const french_horn = note("<A B C D E B F G H ~@13 I J K L M N O P Q R ~@3 S@2 T U V R W X Y ~>".pickRestart({
  A: "~@5 bb3 c4 d4", B: "eb4@3 d4!2 c4 bb3 ab3", C: "bb3@2 g3@2 ~ bb3 c4 d4", D: "eb4@3 eb4 d4 c4 bb3 ab3",
  E: "bb3@6 bb3 d4", F: "bb3@2 eb4@2 ~ d4 eb4 f4", G: "g4@3 g4!2 f4 eb4 d4", H: "eb4 ~", I: "c4 c5",
  J: "[bb3,d4,f4,g4]!2 ~@2", K: "bb3!2", L: "g3@4 ~ c4 f4 g4", M: "a4@3 f4 g4 f4!2 g4", N: "f4@2 c4@2 ~ f3 a3 bb3",
  O: "c4@3 a3 d4 c4 c4@2", P: "a3 g3@7 ~@8", Q: "g4 f4 e4 d4!2 e4 f4 g4", R: "c5 ~", S: "[c4@3 ~]/2",
  T: "f4@3 e4!2 d4 c4 bb3", U: "g4@2 c5@2 c5!4", V: "c5", W: "c5 bb4 a4 g4 f4 e4 d4 c4",
  X: "[c4,e4,g4,a4]@2 [c4,e4,g4,a4]@2 ~ e4 f4 g4", Y: "c5@3 c5 bb4 a4 g4 f4",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft = note("<~@12 A B A C D E F G H I ~@22 J>".pickRestart({
  A: "[bb3,g4]", B: "[f3,bb3]", C: "[bb3,d4,f4,g4] ~", D: "[g3,c4]", E: "[eb3,g3,bb3]@4 ~ [bb2,bb3] [c3,c4] [d3,d4]",
  F: "c4 ab4", G: "[bb3,d4,g4] [bb3,eb4,g4] ~@2", H: "c4 c5", I: "eb4 ~", J: "f4",
})).s("gm_french_horn").gain(0.2)

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<~@11 A B C ~@2 D E F G H I F J D K ~@3 L M N M O ~@2 P Q R S T U V W ~>".pickRestart({
  A: "~@5 d4 eb4 g4", B: "bb4@3 bb4 c5 bb4!2 g4", C: "f4 ~", D: "g4@3 g4!2 f4 eb4 d4", E: "eb4@4 ~ bb4 c5 d5",
  F: "eb5@3 d5!2 c5 bb4 ab4", G: "bb4@2 g4@2 ~ bb4 c5 d5", H: "eb5@3 eb5 d5 c5 bb4 ab4", I: "bb4@6 bb4 d5",
  J: "bb4@2 eb5@2 ~ d4 eb4 f4", K: "eb4@3 ~", L: "~@5 c5 d5 e5", M: "f5@3 e5!2 d5 c5 bb4", N: "c5@4 ~@2 c5 e5",
  O: "c5@2 a4@3 ~@3", P: "~@5 c6 d6 e6", Q: "f6@3 e6!2 d6 c6 bb5", R: "c5@4 a4@4 ~@2 c5@2 c5@3 c5",
  S: "c5@3 c5 a4!2 g4 f4", T: "a4@6 a4 c5", U: "c5@3 a4!2 g4 f4 e4", V: "c4 f4 ~@2", W: "f5 e5 d5 c5 bb4 c5 d5 e5",
})).s("gm_trumpet").gain(0.45)

// other · trumpet · "B♭ Trumpet" · soft notes
const trumpet_soft = note("<~@14 A B ~@10 C D C E ~@4 F G ~@8 H>".pickRestart({
  A: "[bb4,eb5]", B: "[bb4,d5]", C: "[f4,c5]", D: "f4 c4 ~@2", E: "[c4,f4]!2 ~@2", F: "~@8 f4 e4 f4 g4 a4 bb4 c5 e5",
  G: "f5 ~", H: "f5",
})).s("gm_trumpet").gain(0.25)

// chords · piano · "Grand Piano"
const piano = note(`<
  A B C B D B E F G@2 H I J K L M N O B P B Q B R Q S T U V W X Y Z AA AB AC ~ AD AE AD AF AD AG AF AH
>`.pickRestart({
  A: "[eb3,bb3]@15 ~", B: "[c3,c4,eb4,g4] [ab2,ab3,c4,eb4]", C: "[c2,ab3,c4,eb4] [eb2,eb3,g3,bb3] [bb1,bb3,d4,f4]@2",
  D: "[g2,eb3,g3,bb3]@11 ~ [bb2,bb3,d4,f4]@4", E: "[ab2,ab3,c4,eb4] [eb2,eb4,g4,bb4] ~@2",
  F: "[eb2,eb4,g4,bb4] [bb1,bb3,d4,f4]", G: "[eb4,g4,bb4]!4, [eb3,bb3]@15 ~",
  H: "eb3!2 ab2!2, [eb4,g4,bb4] [ab3,c4,eb4]", I: "[ab2,ab3,c4,eb4] [eb3,eb4,g4,bb4] [eb4,g4,bb4]!2",
  J: "[eb4,g4,bb4]!2 [ab3,c4,eb4]!2, eb2 ab2", K: "[bb2,bb3,d4,f4] ~", L: "[c4,eb4,g4]!2 [ab3,c4,eb4]!2, c2 ab2",
  M: "[bb2,bb3,d4,f4] [c3,c4,eb4,g4] ~@2", N: "[eb2,eb4,g4,bb4] [bb2,bb3,d4,f4]", O: "[eb4,g4,bb4]@11 ~@5, [eb2,bb2] ~",
  P: "[ab2,ab3,c4,eb4] [eb3,eb4,g4,bb4] [bb2,bb3,d4,f4]@2", Q: "[eb3,eb4,g4,bb4] [bb2,bb3,d4,f4]",
  R: "[g2,eb3,g3,bb3]!2 [ab2,ab3,c4,eb4]@2", S: "[eb4,g4,bb4]!4, [eb2,eb3]@15 ~",
  T: "[f4,a4,c5]!2 [bb3,d4,f4]!2, [f2,c3] [bb2,f3]", U: "[f3,a3,c4] [bb3,d4,f4] [f3,a3,c4]!2, [f2,c3]!2",
  V: "[f3,a3,c4] [bb3,d4,f4] [c4,e4,g4] [c4,f4,g4], [f2,c3] [c3,g3]", W: "[c4,e4,g4]!2 [d4,f4,a4]!2, [c3,g3] [d3,a3]",
  X: "[d4,f4,a4]!2 [bb3,d4,f4]!2, [d3,a3] [bb2,f3]", Y: "[f3,a3,c4]!3 [bb3,d4,f4], [f2,c3]!2",
  Z: "[f3,a3,c4]!2 [c4,e4,g4]!2, [f2,c3] [c3,g3]", AA: "[f3,a3,c4]!2 [bb3,d4,f4]!2, [f2,c3] [bb2,f3]",
  AB: "[f3,a3,c4]!2 [c3,e3,g3]!2, [f2,c3] [c2,g2]", AC: "[e2,g2,c3,f3,a3,c4] ~",
  AD: "[d4,f4,a4]!2 [bb3,d4,f4]!2, d3 bb2", AE: "[f2,f3,a3,c4] [c3,e3,g3]!3, ~@4 c2@11 ~",
  AF: "[f3,a3,c4]!2 [c3,e3,g3]!2, f2 c2", AG: "[f3,a3,c4] [bb3,d4,f4]!3, f2 bb2",
  AH: "[f2,f3,a3,c4] [c2,c3,e3,g3] [f2,c3,f3,a3,c4]@2", // F C F
})).s("gm_piano").gain(0.25)

// other · trumpet · "Flugelhorn"
const trumpet_2 = note(`<
  ~@37
  [f4 e4 d4 c4 bb3 c4 d4 e4 f4 e4 d4 c4 bb3 c4 d4 e4]!3
  [f4 g4 a4 bb4 c5 bb4 a4 g4 f4 e4 d4 c4 bb3 c4 d4 e4]
  [f4 g4 a4 bb4 c5 bb4 a4 g4 f4 g4 a4 bb4 c5 bb4 a4 g4]
  [f4 e4 d4 c4 bb3 c4 d4 e4 f4 g4 a4 bb4 c5 bb4 a4 g4]!2
  f4
>`).s("gm_trumpet").gain(0.45)

stack(french_horn, french_horn_soft, trumpet, trumpet_soft, piano, trumpet_2)

More by Secret Garden