Strudelify
KeyE♭ majorTempo90 bpm
0:00/0:00
// demons — Imagine Dragons
// 90 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/8 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5143027; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 65 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// 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@2 C B@3 C B D E C B D E C B ~@7 A B@2 C B@3 C B D E C B D E C B@3 C B@3 C B D E C B D E C B
>`.pickRestart({
  A: "~@5 eb5 bb4 eb5", B: "d5 eb5 bb4 eb5 d5 eb5 bb4 eb5", C: "d5 eb5 c5 eb5 d5 eb5 c5 eb5",
  D: "d5 eb5 bb4 eb5 d5 eb5 bb4 eb5, g5", E: "d5 eb5 bb4 eb5 d5 eb5 bb4 eb5, f5",
})).s("gm_violin").gain(0.25)

// other · violin · soft notes
const violin_soft = note("<~ A@2 B A@3 B C ~@16 A@2 B A@3 B C ~@32>".pickRestart({
  A: "d5 eb5 bb4 eb5 d5 eb5 bb4 eb5", B: "d5 eb5 c5 eb5 d5 eb5 c5 eb5", C: "d5 eb5 bb4 eb5 d5 ~@3",
})).s("gm_violin").gain(0.15)

// other · cello · "Violoncello"
const cello = note(`<
  ~ A@2 B C B D E F E G F H E G F H E G F H E G F H A@2 B C B D E F E G F H E G F H E G F H E G F H E G F H E G F H E G
  F H E G F H
>`.pickRestart({
  A: "bb3", B: "g3", C: "ab3", D: "d3", E: "eb3", F: "c3", G: "bb2", H: "ab2",
})).s("gm_cello").gain(0.25)

// chords · contrabass
const contrabass = note(`<
  ~@9 A B C D A B C D E F G H E F G H ~@8 A B C D A B C D E F G H E F G H A B C D A B C D E F G H E F G H
>`.pickRestart({
  A: "eb2", B: "bb1", C: "c2", D: "ab1", E: "[eb2,g2]", F: "[bb1,d2]", G: "[c2,eb2]", H: "[ab1,c2]",
})).s("gm_contrabass").gain(0.3)

// chords · contrabass · soft notes
const contrabass_soft = note("<~ A B C D A E C D ~@16 A B C D A E C D ~@32>".pickRestart({
  A: "eb3", B: "d3", C: "c3", D: "ab2", E: "bb2",
})).s("gm_contrabass").gain(0.2)

stack(violin, violin_soft, cello, contrabass, contrabass_soft)

More by Imagine Dragons