Strudelify
Lose You To Love Me cover art

2019 · Rare

Lose You To Love Me

Selena Gomez

KeyE majorTempo104 bpm
0:00/0:00
// Lose You To Love Me — Selena Gomez
// 104 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5823435; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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
const violin = note("<~@39 A@4 ~@11 B@2 ~@31>".pickRestart({
  A: "[~@6 b3@2 b3@3 b3 b3@2 b3@4 b3@2 ~@12]/2", B: "[~@3 b3!4 b3@2 b3!2 b3@2 b3@3]/2",
})).s("gm_violin").gain(0.15)

// other · piano
const piano = note("<~@29 A B C ~ A D@2 ~@8 E F G H E F G ~ E F G I E F G ~@9 J@8 E F G I E F G ~@4>".pickRestart({
  A: "~ [f#5,f#6]", B: "[d#5,d#6]", C: "~@2 [e5,e6] [b4,b5]", D: "[[d#5,d#6]@31 ~]/2", E: "[c#5,c#6] ~@3 [e5,e6] ~@3",
  F: "[g#5,g#6] ~@3 [f#5,f#6] ~@3", G: "[d#5,d#6] ~@3 [f#5,f#6] ~@3", H: "~@4 [g#5,e6,g#6] ~ [b4,b5] ~",
  I: "~@4 [e5,g#5,g#6] ~ [b4,b5] ~", // E B
  J: "[~@13 [f#5,f#6]@3, [c#5,c#6] [d#5,d#6] [c#5,c#6] [d#5,d#6], ~ [e5,e6]@4 ~@2 [e5,e6]@2 [e5,e6]@4 ~@3, ~@4 [g#5,g#6]@8 ~@3 [b4,b5]@7 [f#5,f#6]@4 ~@6, ~@3 [f#5,f#6]@2 [f#5,f#6]@4 ~ [g#5,g#6]@4 ~@2]/8", // F# C# D# C# D# E G# B …
})).s("gm_piano").gain(0.25)

// chords · piano
const piano_2 = note(`<
  A B C@2 A B C@2 D B C@2 A B C@2 D B C@2 E F G H E F I@2 E F G H E F I@2 D B J@2 ~ B C@2 E F G H E F I@2 E F G H E F
  I@2 A B C@2 D B K@2 ~@2 L@2 M N O@2 E F G H E F I@2 P Q R
>`.pickRestart({
  A: "~ e3@15, [e2,b2,g#3]", B: "[f#2,c#3,e3,a3]@15 ~", C: "[[c#2,c#3,g#3,b3,e4]@23 ~ [b1,b2,f#3,b3,d#4]@8]/2",
  D: "[e2,b2,e3,g#3]@15 ~", E: "[a1,a2,a3,c#4,e4]@15 ~", F: "g#4 f#4, [e1,e2,b3,e4]@15 ~",
  G: "[b1,b2,b3,d#4,e4,f#4]@15 ~", H: "e4!2, [g#1,g#2,g#3,b3]@15 ~", I: "[[b1,b2,b3,d#4,e4,f#4]@15 ~]/2",
  J: "[[c#2,c#3,g#3,b3,e4]@23 ~@9]/2", K: "[[c#2,c#3,g#3,b3,e4]@15 ~]/2", L: "[d#4@23 ~ e4@4 b3@4, d#5@15 ~@17]/2",
  M: "c#4@15 ~", N: "g#4@15 ~", O: "[[b1,b2,b3,d#4,e4,f#4]@23 ~@9]/2", P: "[a4,c#6]@15 ~", Q: "g#6 f#6, e5@15 ~",
  R: "[b4,d#6]@15 ~", // B
})).s("gm_piano").gain(0.25)

// other · pizzicato strings · "Strings"
const pizzicato_strings = note(`<
  ~@36 A B C ~ D B C E F G H I F G H ~ F G H J F G H ~@17 F G H J F G H ~@4
>`.pickRestart({
  A: "[e1,e2]@4 [g#4,g#5] ~@3", B: "[f#1,f#2]@4 [a4,a5] ~@3", C: "[c#2,c#3]@4 [c#5,c#6] ~@3", D: "~@4 [g#4,g#5] ~@3",
  E: "~@8 [b4,b5] [c#4,c#5] ~ [d#4,d#5] [e4,e5] [d#4,d#5] ~ [c#4,c#5]", F: "[c#5,c#6] ~@3 [e5,e6] ~@3",
  G: "[g#5,g#6] ~@3 [f#5,f#6] ~@3", H: "[d#5,d#6] ~@3 [f#5,f#6] ~@3", I: "~@4 [g#4,e5,g#5] ~ [b3,b4] ~",
  J: "~@4 [g#5,e6,g#6] ~ [b4,b5] ~", // C#m B
})).s("gm_pizzicato_strings").gain(0.2)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@10 A ~@7 A ~ B C D E B C ~@2 B C D E B C F@2 ~@6 G H B C D E B C ~@2 I J K E I J L@2 ~@16 I J K E I J L@2 ~@3
>`.pickRestart({
  A: "~@10 b2!2 f#3 g#3 f#3@2, ~@14 e3 ~", B: "[a1,a2]", C: "[e1,e2]", D: "[b1,b2]", E: "[g#1,g#2]", F: "[b1,b2]/2",
  G: "~@10 b2!2 f#3 g#3 f#3@2", H: "f#3 ~@3 [b1,b2]@4",
  I: "~@3 [g#3,g#4] [g#3,g#4]@4 [g#3,g#4]@4 b3@2 ~ [f#3,f#4], [a1,a2]", // G# F# A
  J: "[f#3,f#4]@4 [f#3,f#4]@4 b3@2 ~ [f#3,f#4] [f#3,f#4]@4, [e1,e2]", K: "[b1,b2], b3 ~@7", L: "[[b1,b2], b3 ~@15]/2",
})).s("gm_string_ensemble_1").gain(0.15)

// chords · string ensemble 1 · "Strings" · soft notes
const string_ensemble_1_soft = note("<A B ~@34 C D E@2 ~ D F ~@44>".pickRestart({
  A: "g#2", B: "a2", C: "[e1,e2]", D: "[f#1,f#2]", E: "[[c#2,c#3]@3 ~]/2", F: "[c#2,c#3] ~",
})).s("gm_string_ensemble_1").gain(0.05)

stack(violin, piano, piano_2, pizzicato_strings, string_ensemble_1, string_ensemble_1_soft)