Strudelify

cavatina

Stanley Myers

KeyE majorTempo80 bpm
0:00/0:00
// cavatina — Stanley Myers
// 80 bpm, 3/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/3414846; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 109 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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 B C D E F G H I J K L M N O P A B C D E F G H I J K L M N O P Q R S T U V W X Y J Z AA AB AC M AD@2 AE AF AG AH AI
  AJ AK AL AM AN@2 AO@2 AP AQ AR AS AT A B C D E F G H I J K L M N O P Q R S T U V W X Y J K L M V O AU AV AW@3 AX@6
>`.pickRestart({
  A: "b3 g#3 b3 e4 g#4 a4, e2", B: "e3 b3 e4 g#4 e4 b3, e2", C: "d#3 b3 d#4 g#4 d#4 b3, d#2",
  D: "c#3 a3 c#4 a4 e4 c#4, c#2", E: "f#3 c#3 a3 a4 e4 c#4, f#2", F: "b2 f#3 a3 a4 e4 c#4, b1",
  G: "b3 f#3 a3 f#4 d#4 f#3, b2", H: "e3 b2 g#3 g#4 d#4 b3, e2", I: "e3 b2 g#3 g#4 d4 b3, e2",
  J: "a3 e3 a3 c#4 a3 e3, a2", K: "d3 a2 f#3 c#4 a3 f#3, d2", L: "g3 d3 g3 b3 g3 d3, g2", M: "c3 e3 g3 b3 g3 e3, c2",
  N: "b2 f#3 a3 b3 a3 f#3, b1", O: "b3 f#3 a3 b3 a3 f#3, b2", P: "a3 f#3 g#3 e3 g#3 b3, e2",
  Q: "e4 b3 e4 g#4 b4 d#5, e1", R: "c#3 b3 e4 g#4 e4 b3, c#1", S: "f#3 b3 e4 g#4 e4 b3, f#1",
  T: "b3 f#3 b3 f#4 d#4 b3, b2", U: "b3 f#3 a#3 f#4 d#4 a#3, b2", V: "f#3 c#3 a3 e4 c#4 a3, f#2",
  W: "b3 f#3 a3 d#4 a3 f#3, b2", X: "e3 b2 g#3 d#4 b3 g#3, e2", Y: "e3 b2 g#3 d4 b3 g#3, e2",
  Z: "~ a2 f#3 c#4 a3 f#3, d2", AA: "~ c#3 f#3 f#4 c#4 f#3, f#2", AB: "~ b2 f#3 f#4 b3 f#3, d#2",
  AC: "~ b2 f#3 f#4 b3 f#3, d2", AD: "[~ c4@47, [b2,f#3]]/2", AE: "e4 c4!2 d4!2 b3", AF: "b3 c4 a3 f#3 e3 c3",
  AG: "b2 a2 g2 f#2 g2 a2", AH: "a#2 e3 c#4 f#4 c#4 e3, a#1", AI: "b2 f#3 d#4 f#4 b2 c#3, b1",
  AJ: "g#2 f3 a#3 d4 a#3 f3, g#1", AK: "g2 a#2 d#3 a#2 d#3 f3, f#1", AL: "c#3 a#3 d#4 g4 d#4 a#3, c#2",
  AM: "b2 d#3 g#3 d#3 g#3 a#3, b1", AN: "g#2 e3 b3 e4 b3 e3, g#1", AO: "f#2 b2 d#3 a3 d#3 b2, f#1",
  AP: "e2 b2 d3 g#3 d3 b2, e1", AQ: "b3 c#4 a3 g#3 f#3 e3, a1", AR: "f#2 a3 b3 e4 b3 a3, f#1",
  AS: "b2 a3 f#3 d#4 b3 a3, b1", AT: "e2 f#3 g#3 d#3 e3 f#3, e1", AU: "a3 f#3 g#3 d#3 e3 g#3, e2",
  AV: "b3 g#3 b3 e4 g#4 b4, e1", AW: "[~ [g#3,b3]@33 ~ e3@37, [c#1,e3]@17 [f#1,f#2,c#3]@19]/3",
  AX: "[~@8 a3@57 [e1,e2,g#3,b3]@64 ~@15, ~@6 [b1,b2]@59 ~@79, ~@7 f#3@58 ~@79]/6", // E B
})).s("gm_orchestral_harp").gain(0.3)

stack(orchestral_harp)