Strudelify

Love Is an Open Door

margot-mango

KeyD majorTempo108 bpm
0:00/0:00
// Love Is an Open Door — margot-mango
// 108 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5974666; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 50 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/4)

// 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 · viola
const viola = note(`<
  A@3 B ~@3 A ~@3 C@2 D E F G H I J K L M A N ~@2 O P Q R S T@3 D E F G H I J K L U V W X ~ Y
>`.pickRestart({
  A: "~ d4 ~ d4", B: "~ d4 ~@2", C: "[~@7 d4@2 b4 c#5 d5@2 c#5 f#4 b4]/2", D: "f#4 a4 f#4 c#4 d4@2 ~@2", E: "g#4",
  F: "a#4 ~", G: "f#3 c#4", H: "g#4@8 f4 e4 d4 e4@3 d4@2", I: "f#3 e4 c#4 d4", J: "g#3@8 f3 e3 d3 e3@3 d3@2",
  K: "f#3@2 ~@3 b3 a3 b3", L: "a3@2 b3@2 g#3@4 f3 e3 d3 e3@3 d3@2", M: "~@3 d4", N: "~@2 d3 ~", O: "~@4 d4 c#4 b3 a3",
  P: "f#3", Q: "~@4 g3@4 ~@2 d3!2 g3@2 d3@2", R: "f#3@2 a3 a3@2 a3 f#3@2 d3@2 a3@2 ~@2 f#3@2",
  S: "e3@2 d3 d3@2 d3 f#3@2 e3@2 d3@2 ~@4",
  T: "[~@2 a4 a4@3 f#4@2 e4@2 f#4@2 e4@2 d4@10 ~@6 d4@4 b4@2 c#5@2 d5@4 c#5@2 f#4@2 b4@2]/3", U: "d3",
  V: "d3@8 f3 e3 d3 e3@3 d3@2", W: "~ d4@2 g4", X: "d4!2", Y: "d4",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  A B A C A C A D A C E F G H I J K L K L M N A B M O A C A P Q O R S G H I J K L K L M N A B A T ~ U
>`.pickRestart({
  A: "d3@2 ~ d3 f#2@2 ~ f#2", B: "g2@4 ~@2 g2@2 a2@4 a2 b2 d3@2", C: "g2@2 ~ g2 a2@2 a2@2",
  D: "e2@4 ~@2 e2@2 a2@4 a2 b2 d3@2", E: "d3@2 ~ d3 f#2@2 f#2@2", F: "e2@2 ~ e2 a2@4", G: "b2!2", H: "d3@2 d3 a3",
  I: "e3", J: "g#3!4 g#3@2 ~@2", K: "d3!4 f#2!4", L: "e2!4 g2@2 g2@2", M: "d3@2 ~ d3 f#2@4", N: "e2!2 g2@2",
  O: "g2@2 a2!2", P: "e2@2 ~ e2 a2@2 a2@2", Q: "d3@2 f#2!2", R: "d3 f#2", S: "e2!2 a2@2", T: "g2!2 a2!2", U: "[d3,a3]",
})).s("gm_cello").gain(0.3)

stack(viola, cello)