Strudelify

Can you feel love tonight

Elton John

KeyB♭ majorTempo65 bpm
0:00/0:00
// Can you feel love tonight — Elton John
// 65 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5713485; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 50 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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 · clarinet · "Klarinette in B"
const clarinet = note(`<
  ~ A B C D E F G D E F H I@2 J@2 K L M@2 N@2 O@2 K L P@2 ~ A B C D E F H I@2 J@2 K L Q@2 R S@2 T@3
>`.pickRestart({
  A: "~@5 d5 bb4 f4", B: "g4@2 bb3 bb4", C: "f4 d4 bb3 ~", D: "g4@2 a4 bb4@3 c5 bb4@2 f4@4 ~ f4@2",
  E: "eb4@8 bb3@4 f3 g3 ~@2", F: "bb4 eb4 d4@2", G: "bb4@4 g4@4 eb4@4 f3 g3 c4 f4", H: "bb4@4 g4@4 eb4@4 ~@3 f4",
  I: "[f5@6 d5 c5@5 f5@2 d5@6 bb4 g4@7 ~@4]/2", J: "[f4@4 f4 bb4 eb5@6 d5@2 c5@10 d4@6 d4@2]/2", K: "eb4!2 bb3 f4",
  L: "g4 f4 bb3 eb4", M: "[eb5@2 d5@2 c5@2 d5 c5@5 ~@3 f4]/2", N: "[f5@6 d5 c5@5 f5@2 d5@6 bb4 g4@2 f4 eb4@2 ~@6]/2",
  O: "[f4@4 f4 bb4 eb5@6 d5@2 c5@10 bb3@6 d4@2]/2", P: "[eb5@2 d5@2 c5@2 bb4 bb4@5 f4@4]/2",
  Q: "[eb5@2 d5@2 c5@2 bb4 bb4@5 ~@4]/2", R: "~@4 g4 a4 bb4@6 ~ f4 f4@2",
  S: "[f5@3 c5@2 d5@3 bb4@2 bb4@2 bb4@2 g4@10 ~@8]/2", T: "[eb5@4 d5@4 c5@4 bb4@2 bb4@13 f4@16 ~@5]/3",
})).s("gm_clarinet").gain(0.4)

// other · clarinet · "Klarinette in B" · soft notes
const clarinet_soft = note("<[d5@2 c5 f5] [eb5@4 eb5 ~@3] ~@26 [d5@2 c5 f5] [eb5@4 eb5 ~@3] ~@20>")
  .s("gm_clarinet").gain(0.2)

// other · clarinet · "Klarinette in B"
const clarinet_2 = note(`<
  ~ A B C D E F G D E H I J K L M N O P@2 Q@2 L R N O S@2 ~ A B C D E H I J K L M N O T U ~@3 V@3
>`.pickRestart({
  A: "eb4!3 f4", B: "bb3@2 ~@2 f4 bb4 f4 d4", C: "a4 bb4 c5@2", D: "eb4@8 bb3@4 f3 g3 f4@2", E: "bb4 eb4 d4@2",
  F: "g4@2 a4 bb4@3 c5 bb4@2 f4 d5@4 ~@2", G: "eb5@2 d5@2 c5@2 bb4 c5@5 ~@4",
  H: "g4@2 a4 bb4@2 f4 f4@2 f5@2 d5@2 bb4 g4@3", I: "eb5@2 d5@2 c5@2 bb4 c5@5 d5@2 f4@2", J: "f4@4 f4@2 f4 g4",
  K: "g4@4 c4 bb3@2 g3 eb3@3 ~@5", L: "bb3@2 g4@2 c4@2 g4 c4", M: "f4 ~@2 f4", N: "bb3@4 g4 a4 bb4@6 bb4@4",
  O: "bb4 g4 eb4 bb3", P: "[g4@2 f4@2 f4@2 f4 f4@3 ~@2 f4 bb3 f4 bb3]/2",
  Q: "[f4@8 f4@4 f4@2 g4@6 c4 bb3@2 bb3 g3@2 ~@6]/2", R: "f4 ~@3", S: "[g4@2 f4@2 f4@2 f4 f4@5 bb3@4]/2",
  T: "g4@2 f4@2 f4@2 f4!2", U: "f4 bb3", V: "[g4@4 f4@4 f4@4 f4@2 f4@13 bb3@16 ~@5]/3",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "Klarinette in B" · soft notes
const clarinet_soft_2 = note("<A ~@27 A ~@15 B C@2 ~@3>".pickRestart({
  A: "f4 bb4 f4 c5", B: "a3!2", C: "[bb4@5 g4@5 eb4@13 ~@9]/2",
})).s("gm_clarinet").gain(0.2)

stack(clarinet, clarinet_soft, clarinet_2, clarinet_soft_2)

More by Elton John