Strudelify

Because I Love You

croftbob331

KeyD majorTempo60 bpm
0:00/0:00
// Because I Love You — croftbob331
// 60 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5953775; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 35 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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
const violin = note("<~@8 A B C D E F G H A B I J ~@4 K L M N O P H Q ~@3>".pickRestart({
  A: "a4 g4!2 f#4", B: "d4 a4@2 b4", C: "b4@4 a4@2 f#4 g4", D: "a4 b4 c#5 d5 e5 f#5 g5 a5", E: "a5 g5",
  F: "f#5@2 d5 e5 f#5@4", G: "g5@2 f#5@2 e5@3 f#5", H: "f#5", I: "b5@4 a5@2 f#5 g5", J: "a5 b5 c#6 d6 e6 f#6 g6 ~",
  K: "d5 a5", L: "d5@6 e5 f#5", M: "g5 f#5", N: "e5@6 ~ a4", O: "b4 c#5", P: "d5@8 e5@3 f#5@2 g5@3", Q: "e5",
})).s("gm_violin").gain(0.3)

// other · violin · soft notes
const violin_soft = note("<~@19 A B C D E ~@8 F@3>".pickRestart({
  A: "~@7 a6", B: "a6@3 g6 g6@3 f#6", C: "f#6@2 d6 e6 f#6@4", D: "g6@2 f#6@2 e6@3 f#6", E: "f#6@7 ~", F: "d5/3",
})).s("gm_violin").gain(0.2)

// other · viola
const viola = note("<~@16 A B C D E F G H A I J K L M N O P Q@2>".pickRestart({
  A: "d4 a4", B: "d4@6 e4 f#4", C: "g4 f#4", D: "e4@6 ~ a3", E: "b3 c#4", F: "d4@8 e4@3 f#4@2 g4@3", G: "f#4 e4",
  H: "d4@7 ~", I: "f#4@3 e4 d4@2 b3@2", J: "d4@3 a4 a4@4", K: "a4 d3 e3 f#3 g3 a3 b3 c#4", L: "f#4 e4 d4 a3",
  M: "b3 d4 c#4 e4", N: "a4", O: "g4", P: "f#4@4 f#4 d4 e4 f#4", Q: "[g4 f#4 e4 d4@5]/2",
})).s("gm_viola").gain(0.4)

// bass · contrabass
const bass = note("<A B@2 C D E F@2 A B@2 C D E F@2 A B@2 C D E G H C I E J K L M N O@3>".pickRestart({
  A: "a2 g2", B: "[f#2 b2@2 a2]/2", C: "d2 a2", D: "b2 a2", E: "g2 f#2", F: "[e2 d2@3]/2", G: "e2 d2", H: "d2@7 ~",
  I: "d2@6 e2 f#2", J: "e2@6 ~ a1", K: "b1 c#2", L: "d2@8 e2@3 f#2@2 g2@3", M: "f#2", N: "e2", O: "d2/3",
})).s("gm_contrabass").gain(0.32)

stack(violin, violin_soft, viola, bass)