Strudelify

Serenata Op.6

Enrico Toselli

KeyD majorTempo70 bpm
0:00/0:00
// Serenata Op.6 — Enrico Toselli
// 70 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4473561; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 79 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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 · orchestral harp · "하프"
const orchestral_harp = note(`<
  A B C D E F G H@3 I@2 J K L M H N H I@2 J K L M H N H J O P Q R S J T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL
  AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA@2 AD BB BC BD BE BF BG@3
>`.pickRestart({
  A: "~ f#4 a4 [a2,f#4] b2 [f#2,f#4], d3 ~", B: "~ f#4 a4 f#4 ~ f#4, a2@2 d2", C: "~ f#4 ~ f#4 ~ f#4, d2 f#2 c#3",
  D: "~ g4 a4 g4 ~ g4, b2@2 a2", E: "~ c#5 g5 [f#3,c#5] g3 [d3,a4], e3 ~", F: "~ a4 e5 [d3,a4] e3 [b2,a4], c#3 ~",
  G: "a2 [b2,a4] c#3 [a2,a4] e2 [f#2,c#4]", H: "[d2,d3] f#4 a4 f#4 a2 f#4", I: "d3 f#4 a4 f#4 a2 f#4",
  J: "e3 g4 a4 g4 a2 g4", K: "g3 e4 a4 e4 a2 g4", L: "e3 g4 a4 g4 a2 b4", M: "[a1,a2] g4 a4 g4 a2 g4",
  N: "d3 a4 d5 a4 a2 a4", O: "g3 g4 a4 g4 a2 g4", P: "f#3 f#4 a4 f#4 d3 f#4", Q: "[g2,g3] f#4 b4 f#4 ~ f#4",
  R: "a2 f#4 a4 f#4 ~ f#4", S: "a3 f#4 a4 f#4 a2 g4", T: "[g2,g3] f#4 b4 f#4 ~ e4", U: "[a2,f#3] f#4 a4 d5 f#5 a5",
  V: "d6 ~@5", W: "[a2,e3] e4 g4 b4 ~@2", X: "[f#1,f#2] f#4 a4 f#4 ~ f#4", Y: "[b1,b2] b3 f#4 d4 [a1,a2] f#4",
  Z: "[g1,g2] e4 g4 e4 ~@2", AA: "[a1,a2] f#4 a4 ~@3", AB: "~ [a1,a2]@5 g4@7 a4@7 ~@4", AC: "~@17 [d2,d3]@4 f#4@3",
  AD: "~ a4@4 f#4@4 a2@4 f#4@4 e3@4 g4@3", AE: "~ a4@4 g4@4 a2@4 g4@4 g3@4 g4@3",
  AF: "~ a4@4 g4@4 a2@4 g4@4 f#3@4 f#4@3", AG: "~ a4@4 f#4@4 d3@4 f#4@4 [g2,g3]@4 f#4@3",
  AH: "~ b4@4 f#4@4 ~@4 f#4@4 a2@4 f#4@3", AI: "~ a4@4 f#4@4 ~@4 f#4@4 a3@4 f#4@3",
  AJ: "~ a4@4 f#4@4 a2@4 g4@4 e3@4 g4@3", AK: "~ a4@4 g4@4 a2@4 g4@4 [g2,g3]@4 f#4@3",
  AL: "~ b4@4 f#4@4 ~@4 e4@4 [a2,f#3]@4 f#4@3", AM: "~ a4@4 d5@4 f#5@4 a5@4 d6@4 ~@3", AN: "~@17 [a2,e3]@4 e4@3",
  AO: "~ g4@4 b4@4 e5@4 g5@4 b5@4 ~@3", AP: "~@17 a2@4 f#4@3", AQ: "~ a4@4 c#5@4 f#5@4 a5@4 c#6@4 ~@3",
  AR: "~@17 g2@4 b3@3", AS: "~ d4@4 g4@4 ~@4 b3@4 [e2,e3]@4 f#4@3", AT: "~ e4@4 d4@4 ~@4 d4@4 [a1,a2]@4 f#4@3",
  AU: "~ a4@4 f#4@4 [g1,g2]@4 f#4@4 [f#1,f#2]@4 f#4@3", AV: "~ a4@4 f#4@4 ~@4 f#4@4 [b1,b2]@4 b3@3",
  AW: "~ f#4@4 d4@4 [a1,a2]@4 f#4@4 [g1,g2]@4 e4@3", AX: "~ g4@4 e4@4 ~@8 [a1,a2]@4 f#4@3",
  AY: "~ a4@4 ~@12 [a1,a2]@4 g4@3", AZ: "~ a4@4 ~@12 d2@4 f#4@3",
  BA: "[~ a4@4 f#4@4 a2@4 f#4@4 f#2@4 f#3@4 a3@4 f#3@4 a2@4 f#4@4 d3@4 f#4@3, ~@17 a4@16 ~@15]/2",
  BB: "~ a4@4 g4@4 a2@4 g4@4 g3@4 e4@3", BC: "~ a4@4 e4@4 a2@4 g4@4 e3@4 g4@3", BD: "~ a4@4 g4@4 a2@4 b4@4 a1@4 g4@3",
  BE: "~ a4@4 g4@4 a2@4 b4@4 [d2,d3]@4 f#4@3", BF: "~ a4@4 f#4@4 a2@4 b4@4 [d2,d3]@4 f#4@3",
  BG: "[~ a4@4 f#4@4 a2@4 g4@4 ~@4 f#4@4 a4@4 d5@4 f#5@4 a5@4 [f#5,a5,d6]@16 [d2,a2,f#3,d4]@8 ~@7, ~@17 [d2,d3]@24 ~@31]/3", // D
})).s("gm_orchestral_harp").gain(0.15)

stack(orchestral_harp)