Strudelify

Song to the Moon

Antonin Dvorak

KeyG majorTempo100 bpm
0:00/0:00
// Song to the Moon — Antonin Dvorak
// 100 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4571125; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 42 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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.

// chords · orchestral harp
const orchestral_harp = note(`<
  A@4 B C D@2 E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG Z AA AB AC AH
>`.pickRestart({
  A: "[d4,g4,b4]@4 [d4,f#4,a4] [d4,g4,b4]", B: "[d4,g4,b4]@2 [e4,g4,c5]@2 [d4,g4,b4] [e4,g4,c5]",
  C: "[d4,g4,b4] [e4,a4] [e4,g4]", D: "[d4,f#4,a4]@4 [g4,b4] [f#4,a4]", E: "[e4,c5]@2 [c4,a4]",
  F: "[d4,f#4,b4]@2 [b4,d5]@2 [d4,f#4,c5] a4", G: "[g4,b4]@2 [g4,b4]@2 [f#4,a4] [a4,c5]",
  H: "[a4,c5]@2 [a4,c5]@2 [g4,b4] e5", I: "[a4,e5] [e4,c5] [f#4,a4,d5]@2 f#4 a4", J: "[a4,e5] [e4,c5] [f#4,a4,d5]@4",
  K: "[g4,d5] [a4,c5] [g4,b4]", L: "d4@2 c#4@2 a4 g4, b4@2 ~", M: "[g4,b4] [f#4,a4] [g4,b4]",
  N: "[a4,c5] [g4,b4] [f#4,a4]", O: "[d4,d5]@2 [e4,c5]", P: "[e4,e5]@2 [g4,d5]", Q: "[f#4,f#5] d5 [g4,e5]@4",
  R: "[d5,f#5] [b4,d#5] [c5,e5]@4", S: "[f4,e5]@2 d5@2 [d4,b4] f4", T: "[c4,e4] f4 [d4,f#4]@4",
  U: "[b3,a4]@2 g4 f#4 g4 a4", V: "a#4 b4@2 c5 c#5 d5", W: "[b3,d4,g4]@2 [b4,d5,g5]@3 [b4,d5,g5]",
  X: "[b4,d5,f#5] [b4,d5] [b4,d5,f#5]@4", Y: "[e4,g4,c5] d5 [g4,c5,e5]@6 [e4,g4,d5]@2 [e4,g4,c5]@2",
  Z: "[e4,g#4,b4]@4 e4 g#4", AA: "[e4,g4,b4] [f#4,a4] [e4,g4,b4]", AB: "[e4,b4,d5]@2 [e4,a4,c5]@2 [d4,b4] [c4,a4]",
  AC: "[b3,d4,g4] a4 [d4,g4,b4]@10", AD: "[c4,f#4,a4]@4 [c4,d4,f#4]@4 [b3,d4,g4]@4 d4@4 g4@3 b4@2 d5@3",
  AE: "[b4,e5,g5] [b4,e5,a5] [b4,e5,g5]", AF: "[b4,d5,f#5]@3 e5@2 d5@3 [b4,d5,f#5]@16",
  AG: "[e4,g4,c5] d5 [g4,c5,e5]@6 [e4,g4,d5] e5 d5 c5", AH: "[c4,f#4,a4] [b3,d4,g4] ~",
})).s("gm_orchestral_harp").gain(0.3)

// other · orchestral harp
const orchestral_harp_2 = note(`<
  A@4 B C D@2 E F G H I J K L M@2 N O P Q R S T@2 U V W X Y Z AA AB AC V W X Y Z AA AB
>`.pickRestart({
  A: "[g3,b3]@4 d3 g3", B: "[g3,b3]@2 c3@2 g3 c3", C: "g3 [c3,g3] [e3,b3]", D: "d3@4 g3 d3", E: "[a2,a3]@2 [a2,g3]",
  F: "[d3,c4]@4 a3 c4", G: "[g3,d4]@2 [d3,d4]", H: "[a3,e4]@2 [e3,b3]", I: "[a3,c4] d4@2", J: "c4 d4@2",
  K: "[b3,d4] [g3,d4]@2", L: "~ a2@2, [e3,g3]", M: "[d3,d4]/2", N: "[b2,g3]@2 [a2,g3]", O: "[c3,g3]@2 [b2,g3]",
  P: "[d3,b3] b2 [c3,g3]@4", Q: "[c3,g3]", R: "[g#3,b3]", S: "[a2,e3] [d2,d3]@2", T: "[[g2,d3]@2 ~]/2",
  U: "g2 b2 d3 g3 b3@2", V: "b2 d3 f#3 b3 d4@2", W: "c2 g2 c3 e3 g3@2", X: "e2 b2 e3 g#3 b3@2", Y: "e2 b2 e3 f#3 g3@2",
  Z: "a2 e3 a3 c4 ~@2", AA: "d2 g2 d3 g3 b3@2", AB: "[d2,d3] [g2,g3] ~", AC: "e2 g2 e3 g3 b3@2",
})).s("gm_orchestral_harp").gain(0.3)

stack(orchestral_harp, orchestral_harp_2)