Strudelify

Crisantemi SC 65

Giacomo Puccini

KeyE majorTempo90 bpm
0:00/0:00
// Crisantemi SC 65 — Giacomo Puccini
// 90 bpm, 3/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4154416; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 99 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · violin · "Violin II"
const violin = note(`<
  ~ A B C D E F A G@4 H I J K@2 L@2 M N O P Q R S T ~ U V@2 W@3 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AQ AS AT AU AT AV AW AX AY B C D E F A G@4 H I J AZ BA L@2 M N O P Q R S T ~ U BB@2 BC@2 BD BE BF@2
>`.pickRestart({
  A: "~ f#4!2 g#4 g4 f#4", B: "e4@4 f#4@2 g4@2 g#4@2 a4 c5", C: "g#4 [g#3,g#4]@2 [g#3,g#4]@2 g#3", D: "c#4@2 f#4",
  E: "d#4 f#4 g#3@2 c4@2", F: "c#4 ~", G: "[e4@14 f4@2 f#4@2 g4@2 f#4@2 c#4@4 a4@3 b4 g#4 a4 b4@2 c#5@14]/4",
  H: "~ c#4 f#4 c#4 f#4@2 [c#4,f#4]@4 [c#4,f#4]@2", I: "~ a3 d#4 a3 d#4@2 [a3,d#4]@4 [a3,d#4]@2", J: "c#4@3 c#4@2 c#4",
  K: "[c4@7 c4 c#4 d4 c#4 g#3]/2", L: "[e4@7 f4 f#4 g4 f#4 c#4]/2", M: "c#4@3 a4 c#5 f#5", N: "f#5 d#5 c#5@4",
  O: "d#5 c#5 a4@4", P: "c#5 a4@2 f#4 d#4 c#4", Q: "a3@15 ~@5 g#4@3 ~",
  R: "e4@4 ~@2 g#4@2 c#5@3 ~ e4@3 ~ d#5@4 ~@2 g#4@2", S: "e5", T: "e4", U: "~ g#3 a3 g#3 g3 g#3", V: "[g#3@11 ~]/2",
  W: "c#4@2 b3", X: "c#4", Y: "b3", Z: "c#4@16 c#4@5 f#4@3", AA: "b3 e4 f#4", AB: "b3@8 d4@8 g#4@3 f4@2 b3@3",
  AC: "c#4@10 f#4@2 a4@2 f#4 ~ d4@4 b3@4", AD: "a3 ~", AE: "~@7 g4 a#3@3 e4", AF: "d4@3 e4 f#4@3 e4 d4@3 f#4",
  AG: "f4@3 f#4 f4@3 f#4 f4@3 f#4", AH: "f4 ~@5", AI: "f#4 c#4 f#4 c#4 f#4 c#4 f#4 c#4 f#4 d4 f#4 g#4",
  AJ: "a4 c#4 f#4 c#4 f#4 c#4 f#4 c#4 f#4 c#4 f#4 c#4", AK: "g#4 b3 g#4 b3 g#4 b3 g#4 b3 g#4 b3 g#4 d4",
  AL: "f#4@2 c#4@2 a4@2 c#4@2 a4@2 c#4@2 a4@2 c#4@2 a4@3 g#4@2 f#4@3", AM: "g#4 e4 g#4 e4 g#4 e4 g#4 e4 f#4 d4 f#4 d4",
  AN: "f4@2 d4@2 f4@2 d4@2 f4@2 d4@2 f4@2 d4@2 g#4@3 f#4@2 f4@3",
  AO: "f#4@2 c#4@2 f#4@2 c#4@2 f#4@2 c#4@2 a3@2 f#4 ~ f#4@2 d4@2 b3@2 f4@2", AP: "[a3,f#4] a3@3 g#3@2", AQ: "a3@2 b3",
  AR: "a3@2 g#3", AS: "a3@3 ~ c#4@2", AT: "d4@6 ~ d4 f#4@2 ~ d4", AU: "f#4@3 ~ a4@2", AV: "c#4@3 ~ c#4@2",
  AW: "d#4@12 ~@2 d#4@2 d#4@3 d#4@4 c#4", AX: "d#4@2 f#4", AY: "g#4 g4 f#4", AZ: "c4", BA: "c4!2 c#4 d4 c#4 g#3",
  BB: "[d#4 c#4@4 g#3]/2", BC: "[c#4@5 g#3]/2", BD: "c#4@5 ~", BE: "g#3@2 g#3", BF: "[g#3@7 ~@5]/2",
})).s("gm_violin").gain(0.15)

// other · viola
const viola = note(`<
  ~ A B C D@2 E A F G H I J K ~@8 L M N O P ~ Q R@2 S@3 T U T V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AL AN AO
  AP AO AQ AR AS AT B C D@2 E A F G H I J K ~@8 L M N O P ~ Q AU AV AW AX AY AZ BA@2
>`.pickRestart({
  A: "~ c4 c#4 d4 c#4 g#3", B: "~@2 g#3@2 a3@2 d#4@2 e4@2 f#4 g#4", C: "c4 c#4 c#3",
  D: "[~@2 c#3@2 f#3@2 g#3@2 a3 b3 g#3 a3@3 c#4@2 f#3@4 d#3@4]/2", E: "[c#3,g#3] ~", F: "g#3@5 g#3",
  G: "c#4 b4!2 c#5 c5 b4", H: "a4 c#4@2 c#4 [a3,f#4]@2", I: "a3 c#4 f4 f#4 a4@2 [a3,c#4]@2 a4@2 [a3,c#4]@2", J: "a4",
  K: "f#4", L: "~ c#4@2 a3 f#3 d#3", M: "c3@15 ~@5 g#3@3 ~", N: "c#4@4 ~@2 d#4@2 e4@3 ~ c#4@3 ~ f#4@4 ~@2 d#4@2",
  O: "g#4", P: "g#3", Q: "~ c3 c#3 d3 c#3 f#3", R: "[e3@11 ~]/2", S: "a3 f#3 a3 f#3 a3 f#3 a3 f#3 g#3 f#3 g#3 f#3",
  T: "a3 f#3 a3 f#3 a3 f#3 a3 f#3 a3 f#3 a3 f#3", U: "g#3 f#3 g#3 f#3 g#3 f#3 g#3 f#3 g#3 f#3 g#3 f#3",
  V: "g#3 e3 g#3 e3 g#3 e3 g#3 e3 f#3 d3 f#3 d3", W: "f3 d3 f3 d3 f3 d3 f3 d3 b3 f3 b3 f3",
  X: "a3 f#3 a3 f#3 a3 f#3 a3 f#3 g#3 f#3 g#3 f3", Y: "f#3 c#3 f#3 c#3 f#3@2 ~@5 f#4", Z: "e5@3 c#5 a#4@3 b4 c#5@3 d5",
  AA: "c#5@4 b4@3 f#4 f#4@3 d#4", AB: "f4@3 d4 c#4@3 d4 c#4@3 d4", AC: "c#4!3", AD: "f#3@2 [f#3,g#3]",
  AE: "[f#3,a3]@2 [f#3,a3]", AF: "[f#3,g#3]@2 [f#3,g#3]", AG: "[f#3,a3]@2 f#3", AH: "[f#3,g#3]@2 [f#3,d4]",
  AI: "[f#3,b3]@2 [f#3,c#4]", AJ: "[f#3,c#4]@5 c#4 f#4 a3 g#3 a3 g#3 a3",
  AK: "f#3 ~ f#3@2 c#3@2 f#3@2 c#3@2 f#3@2 c#3@2 f#3@2 d3@2 f#3@2 d3@2 f#3@2",
  AL: "c#3 f#3 c#3 f#3 c#3 f#3 c#3 f#3 c#3 f3 c#3 f3", AM: "c#3 f#3 c#3 f#3 c#3 f#3 c#3 f#3 d3 f#3 d3 f#3",
  AN: "~ c#3 f#3 c#3 f#3@2 ~@2 a3@4", AO: "b3@6 ~ b3 d4@2 ~ b3", AP: "c#4@3 ~ f#4@2", AQ: "a3@3 ~ a3@2",
  AR: "c4@12 ~@2 c4@2 c#4@3 c4@4 a3", AS: "c4@2 c#4", AT: "d4 c#4 g#3",
  AU: "e3@10 e3 ~ c#3 ~ e3 ~ d#3 ~ f#3 ~ d#3 ~ f#3 ~", AV: "e3 ~ g#3 ~ c#4@12 g#3@8",
  AW: "c#3@9 ~ e3 ~ c#3 ~ e3 ~ d#3 ~ f#3 ~ d#3 ~ f#3 ~", AX: "e3 ~ g#3 ~ c#4 ~ g#3 ~ e4@8 g#3@8", AY: "c#3@5 ~",
  AZ: "e3@2 e3", BA: "[e3@7 ~@5]/2",
})).s("gm_viola").gain(0.15)

// other · viola · soft notes
const viola_soft = note("<~@14 A B@2 C D E F G H ~@53 A B@2 C D E F G H ~@14>".pickRestart({
  A: "~ f#3@2 f#3@3 e3@2 d#3@4", B: "[~ d#3@2 d#3@3 g#3@4 d#4@4 f#4@2 f#4@2 g#4@2 g4@2 f#4@2]/2", C: "g#3@5 g#3",
  D: "c#4 b4!2 c#5 c5 b4", E: "a4@3 a3 c#4 f#4", F: "a4 f#4 d#4@4", G: "f#4 d#4 c#4@4", H: "d#4 ~@5",
})).s("gm_viola").gain(0.05)

// other · cello · "Violoncello"
const cello = note(`<
  A@2 B C D E F G H I J K L B ~@8 M N O P ~ Q@2 R@2 S@7 T U V W X Y Z AA AB AC AD AE AF AG AH@4 AI@7 AJ B C D E F G H I
  J K L B ~@8 M AK O P ~ AL@2 AM AN AM AN AO AP AQ@2
>`.pickRestart({
  A: "[g#3@4 g#3@4 f#3 f3 e3 d#3]/2", B: "c#3", C: "e3@2 e2", D: "f#2@3 e2 d#2@2", E: "g#2@2 g#2",
  F: "c#2@2 g#2@2 c#3 ~ e3@2 f#3@2 g3@2", G: "a3 g#3 f#3 f3 e3 d#3", H: "c#3 c#2 g#2 c#3 e3 g#3",
  I: "c#4@2 b3 a#3 a3 g#3", J: "f#3@2 e3", K: "d#3", L: "e3", M: "~ f#3@2 d#3 c#3 a2", N: "f#2@15 ~@5 g#3@3 ~",
  O: "e3@4 ~@2 g#3@2 c#4@3 ~ e3@3 ~ d#4@4 ~@2 g#3@2", P: "e4", Q: "[g#2@8 f#2 f2!2 d#2]/2", R: "[[c#2,g#2]@11 ~]/2",
  S: "[f#2,c#3] ~@3 [f#2,c#3] ~", T: "[f#2,b2] ~@3 [f#2,c#3] ~", U: "[f#2,c#3]@2 ~@4 [d2,d3] ~ b2 ~ [c#2,c#3] ~",
  V: "[f#2,c#3] ~@4 f#2 a2 c#3 f3 f#3 a3 c#4", W: "g4 e4 f#3", X: "[b2,f#3]@5 f#2 b2 d3 f3 f#3 b3 c4",
  Y: "c#4@3 g#3 c#4@3 g#3 c#4@3 g#3", Z: "c#4@2 ~@9 f#3", AA: "a3@7 f#3 b3@3 f#4", AB: "f#4 c#4@9 ~ c#4",
  AC: "e4@4 d4@7 b3", AD: "b3@2 c#4@14 d4 c#4@2 b3@2 a3@3", AE: "b3@5 c#4 b3 c#4 a3 b3 a3 b3",
  AF: "g#3@16 b3@3 a3@2 g#3@3", AG: "a3@2 f#3 d3 b2 c#3", AH: "f#2@2 f#2",
  AI: "[f#2 ~ f#3@6 f#3@6 f#3@6 f#3@6 f#3@6 f#3@6 f#3@4]/7", AJ: "f3 e3 d#3", AK: "f#2@13 ~@7 g#3@3 ~",
  AL: "[g#2@8 f#2 f2 e2 d#2]/2", AM: "c#2 ~ g#2 ~ c#2 ~ g#2 ~ c#2@8 g#2@8", AN: "c#2 ~ g#2 ~ c#2 ~ g#2 ~ c#3@8 g#2@8",
  AO: "c#2@5 ~", AP: "[c#2,g#2]@2 [c#2,g#2]", AQ: "[[c#2,g#2]@7 ~@5]/2",
})).s("gm_cello").gain(0.15)

// other · cello · "Violoncello" · soft notes
const cello_soft = note("<~@14 A B@2 C D E F G H ~@53 A B@2 C D E F G H ~@14>".pickRestart({
  A: "a2", B: "[g#2@7 g#3 f#3 f3 e3 d#3]/2", C: "c#3 c#2 g#2 c#3 e3 g#3", D: "c#4@2 b3 a#3 a3 g#3",
  E: "f#3 f#2 c#3 f#3 a3 c#4", F: "d#4 c#4 a3@4", G: "c#4 a3 f#3@4", H: "a3 ~@5",
})).s("gm_cello").gain(0.05)

stack(violin, viola, viola_soft, cello, cello_soft)

More by Giacomo Puccini