Strudelify

oblivion

Lara Sanson

KeyA minorTempo120 bpm
0:00/0:00
// oblivion — Lara Sanson
// 120 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5082109; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 183 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// 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 · violin · "Violín"
const violin = note(`<
  ~@2 A B C D E F G H I@2 J@2 K@2 ~ L M@2 A N O A@3 P Q R S T U V W P Q R S X Y Z AA ~ A B C D E F G H I@2 J@2 K@2 ~ L
  M@2 A N O A@3 P Q R S T U V W P Q R S X Y Z AA ~@3 AB AC AD AE AF AG AH AI AH AI AJ AK AL AM AL AM A AN AO@2 AP AQ Z
  AR C AS AT@2 AU@2 AT@2 AB AC AD AE AF AG AH AI AH AI AJ AK AL AM AL AM AV AW AX@2 AY AZ A BA BB@2 BC ~ AT BD BE@2 AB
  AC AD AE AF AG AH AI ~@8 BF@2 BG@2 BH@2 BI@2 AB AC AD AE AF AG AH AI BJ
>`.pickRestart({
  A: "e5", B: "e5@6 d5 c5 b4@6 a4@2", C: "c5", D: "c5@6 b4 a4 g4@6 f4@2", E: "a4@14 g4 f4", F: "g4@14 f4 e4",
  G: "f4@6 e4 d4 c4@4 b3@4", H: "e4@8 ~@2 e4@2 f4 e4 d#4 e4", I: "[e5 d5 e5@18 d5 e5 d5 c5 b4@6 a4@2]/2",
  J: "[c5@22 b4 a4 g4@6 f4@2]/2", K: "[a4@22 g4 f4 e4@6 d4@2]/2", L: "f4@4 ~ a4 d5 e5", M: "[f5@22 e5 d5 c5@4 b4@4]/2",
  N: "e5@6 d5 c5 b4@4 a4@4", O: "b4@3 d#5", P: "c5@6 a4 b4", Q: "c5@3 b4@2 d5@3 g4@4 f4@4", R: "e4 b4@3",
  S: "b4@3 a4@2 c5@3 f4@4 e4@4", T: "d4 a4@3", U: "a4@3 g#4@2 b4@3 e4@4 d4@4", V: "c4@3 d4@3 e4@2",
  W: "e4@10 f4@2 g4 f4 e4 f4", X: "d#4@3 b3", Y: "e4@3 e4", Z: "a4", AA: "b6!9 ~@7",
  AB: "~@2 e4 ~ f4@2 e4 ~ f4@2 e4@2 c5 ~ a4@2", AC: "~@2 e4 ~ f4@2 e4 ~ c5 ~ a4@2 e4 ~ f4@2",
  AD: "~@2 d#4 ~ e4@2 d#4 ~ e4@2 d#4@2 b4 ~ f#4@2", AE: "~@2 d#4 ~ e4@2 d#4 ~ b4@2 f#4@2 d#4 ~ e4@2",
  AF: "~@2 d4 ~ e4@2 d4 ~ e4@2 d4@2 b4 ~ f4@2", AG: "~@2 d4 ~ e4@2 d4 ~ b4@2 f4@2 d4 ~ e4@2",
  AH: "~@2 c4 ~ d4@2 c4 ~ d4@2 c4@2 a4 ~ e4@2", AI: "~@2 c4 ~ d4@2 c4 ~ a4@2 e4@2 c4 ~ d4@2",
  AJ: "~@2 c4 ~ d4@2 c4 ~ d4@2 c4@2 a4 ~ d#4@2", AK: "~@2 c4 ~ d4@2 c4 ~ a4@2 d#4@2 c4 ~ d4@2",
  AL: "~@2 b3 ~ c4@2 b3 ~ c4@2 b3@2 g#4 ~ d4@2", AM: "~@2 b3 ~ c4@2 b3 ~ g#4@2 d4@2 b3 ~ c4@2",
  AN: "e5@2 ~@4 e4@2 d5@2 c5@2 b4 ~ a4@2", AO: "b4/2", AP: "d5", AQ: "d5@2 ~@4 d4@2 c5@2 b4@2 a4 ~ g#4@2",
  AR: "a4@4 ~ e4 a4 b4", AS: "c5@3 e4 c5 b4 c5 a4", AT: "b4", AU: "[b4 a4 b4@24 c5@2 b4@2 a4@2]/2",
  AV: "g5@14 a#4 a4, d5@3 ~", AW: "g#4 a4 e5 g5 f5 e5 d5 e5", AX: "[f5@13 c#5 d5 e5]/2", AY: "f5 e5 f5@12 f#4 g4",
  AZ: "g#4 g4 f4 g4 g5 f5 e5 d5", BA: "~@2 e4@2 g#4@2 b4@2 e5@2 d5@2 e5 d5 c5 b4", BB: "[c5@7 e5]/2", BC: "[b4,d#5]",
  BD: "b4@3 d5", BE: "c5/2", BF: "a4 ~ f5@2 e5@2 a4 ~ f5@2 e5@2 a4@3 ~", BG: "a4 ~ f#5@2 d#5@2 a4 ~ f#5@2 d#5@2 a4@3 ~",
  BH: "a4 ~ f5@2 d5@2 a4 ~ f5@2 d5@2 a4@3 ~", BI: "a4 ~ e5@2 c5@2 a4 ~ e5@2 c5@2 a4@3 ~", BJ: "a5@3 ~@5",
})).s("gm_violin").gain(0.3)

stack(violin)