Strudelify

Astro del ciel

enzov

KeyD majorTempo120 bpm
0:00/0:00
// Astro del ciel — enzov
// 120 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6117219; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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 · string ensemble 1 · "Violino"
const string_ensemble_1 = note(`<
  ~@2 A B A B C D E F G H A B G H A B C I J K L M N@2 C I J K L M N@2 A B A B C D E F G H A B G H A B C I J K L M N@2 C
  I J K L M N@2
>`.pickRestart({
  A: "a4@8 b4@3 a4@5", B: "f#4", C: "e5@11 e5@5", D: "c#5", E: "d5@11 d5@5", F: "a4", G: "b4@11 b4@5",
  H: "d5@8 c#5@3 b4@5", I: "g5@8 e5@3 c#5@5", J: "d5", K: "f#5", L: "d5@5 a4@5 ~ f#4@5", M: "a4@8 g4@3 e4@5", N: "d4",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.7)

// other · string ensemble 1 · "Violino II"
const string_ensemble_1_2 = note(`<
  ~@2 A B A B C D E F G H A I G H A B C H J@2 K L J@2 C H J@2 K L J@2 A B A B C D E F G H A I G H A B C H J@2 K L B@2 C
  H J@2 K L B@2
>`.pickRestart({
  A: "d4@8 d4@3 d4@5", B: "d4", C: "e4@11 e4@5", D: "a4", E: "f#4@11 f#4@5", F: "e4@5 d4@5 ~ c#4@5", G: "g4@11 g4@5",
  H: "g4@8 g4@3 g4@5", I: "c4", J: "d4/2", K: "d4@5 d4@5 ~ d4@5", L: "c#4@8 c#4@3 c#4@5",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.4)

// chords · piano · "Pianoforte"
const piano = note(`<
  A B A B C D E F G H I J C K I J C D L M N@2 O P Q@2 L M N@2 O P Q@2 A B C D E F G H I J C K I J C D L M N@2 O P R S L
  M N@2 O P R S
>`.pickRestart({
  A: "[d3,a4]@8 [d3,b4]@3 [d3,a4]@5", B: "~@5 c#3@5 ~ b2@5, [d3,f#4]", C: "[a2,d3,a4]@8 [a2,d3,b4]@3 [a2,d3,a4]@5",
  D: "a2@5 a2@5 ~ b2@5, [d3,f#4]", E: "[c#3,e3,e5]@11 [e3,e5]@5", F: "e3@5 e3@5 ~ e3@5, [a3,c#5]",
  G: "[d3,f#3,d5]@11 [d3,f#3,d5]@5", H: "e3@5 d3@5 ~ c#3@5, [a2,a4]", I: "[d3,g3,b4]@11 [d3,g3,b4]@5",
  J: "[d3,g3,d5]@8 [d3,g3,c#5]@3 [d3,g3,b4]@5", K: "a2@5 a2@5 ~ a2@5, [c3,f#4]",
  L: "[a2,c#3]@5 c#3@5 ~ [c#3,e3,e5]@5, e5@11 ~@5", M: "[e3,g3,g5]@8 [e3,g3,e5]@3 [e3,g3,c#5]@5",
  N: "[a2@5 a2@5 ~ a2@5 [f#2,f#5]@16, d3, d5 ~]/2", O: "[a2,d3,d5]@5 [a2,d3,a4]@5 ~ [b2,d3,f#4]@5",
  P: "[c#3,a4]@8 [c#3,g4]@3 [c#3,e4]@5", Q: "[a2@5 f#2@5 ~ a2@5 [f#2,d4]@16, d3, d4 ~]/2",
  R: "a2@5 a2@5 ~ a2@5, [d3,d4]", S: "[f#2,d3,d4]",
})).s("gm_piano").gain(0.3).pan(0.3)

stack(string_ensemble_1, string_ensemble_1_2, piano)