Strudelify

nothing left to say

Imagine Dragons

KeyA minorTempo108 bpm
0:00/0:00
// nothing left to say — Imagine Dragons
// 108 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1355486; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 145 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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 · pizzicato strings
const pizzicato_strings = note("<~@112 A@2 B@2 A@6 B@2 A@6 B@2 A@6 B@2 A@3 ~@2>".pickRestart({
  A: "e4@3 e4@3 e4@4 e4@2 e4@4", B: "f4@3 f4@3 f4@4 f4@2 f4@4",
})).s("gm_pizzicato_strings").gain(0.3)

// other · violin
const violin = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 G H I J K L@2 M@2 N@2 ~ O P Q R@2 S@3 T U T ~ V W V W T U T ~ V W V W K L@2 M@2 N@2 ~ O P Q
  R@2 S@3 T U T ~ V W V W T U T ~ V W V W X@2 Y@2 X@2 Z@2 X@2 Y@2 X@2 Z@2 T U T ~ V W V W T U T ~ V W V W ~@32 AA
>`.pickRestart({
  A: "[c5@6 d5 e5]/2", B: "[a4@6 b4 c5]/2", C: "[c5@6 b4 c5]/2", D: "[g#4@3 ~]/2",
  E: "[c6@3 b5@3 a5@2 e5@16 b5@4 c6@4]/2", F: "[c6@3 b5@3 a5@2 f5@16 b5@4 c6@4]/2", G: "c6@3 b5@3 a5@2 d5@8",
  H: "e5@8 b5@4 c6@2 d5 e5", I: "d5", J: "c5 b4", K: "~@2 c5 ~ c5@4 ~@2 b4 ~ b4@4",
  L: "[~@2 b4 ~ b4@2 c5@2 b4@4 a4@16 ~@2 a5 ~]/2", M: "[a5@2 a5 a5@3 a5 ~ a5@4 c5 ~ c5@10 ~@8]/2",
  N: "[~@2 e5@2 e5@4 e5@2 d5@2 d5@10 d5 c5 b4@4 ~@4]/2", O: "~@2 e5 ~ e5@4 ~@2 e5 ~ e5@4", P: "~ d5!2 e5 d5@2 c5!2",
  Q: "a4@12 ~@2 c5 ~", R: "[f5@2 f5 f5@3 f5 ~ f5@4 e5 ~ e5@10 ~@8]/2",
  S: "[~ a3!3 a3@2 g3 g3@3 a3 g3@3 a3 g3@3 a3 g3@3 a3@2]/3", T: "e5@3 d5@3 c5 ~", U: "~@3 f5",
  V: "~@2 c5 d5 e5@2 ~@2 c5 d5 e5@2 ~@2 a4@2", W: "~@2 a4@2 ~@2 c5 d5 e5@4 c5@4", X: "e4/2", Y: "c4/2", Z: "g4/2",
  AA: "a5",
})).s("gm_violin").gain(0.4)

// other · pizzicato strings
const pizzicato_strings_2 = note("<~@112 A@6 B@2 A@6 B@2 A@6 B@2 A@6 B ~@2>".pickRestart({
  A: "c4@3 c4@3 c4@4 c4@2 c4@4", B: "b3@3 b3@3 b3@4 b3@2 b3@4",
})).s("gm_pizzicato_strings").gain(0.3)

// other · viola
const viola = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 ~@6 I@2 ~@5 J@3 K L K ~@5 K L K ~@11 I@2 ~@5 J@3 K L K ~@5 K L K ~@5 M@2 N@2 M@2 O P
  M@2 N@2 M@2 O P K L K ~@5 K L K ~@37 Q
>`.pickRestart({
  A: "a3/2", B: "f3/2", C: "g3/2", D: "[e3@3 ~]/2", E: "[a3@6 b3 c4]/2", F: "[f3@6 b3 c4]/2", G: "[g3@6 b3 c4]/2",
  H: "e3/2", I: "[~@12 d4 c4 b3@10 ~@8]/2", J: "[~ e4!3 e4@2 d4 d4@3 e4 d4@3 e4 d4@3 e4 d4@3 e4@2]/3",
  K: "d4@3 c4@3 a3 ~", L: "~@3 c4", M: "c4@2 d4 ~ e4 ~ d4 ~ c4@2 d4 ~ e4 ~ d4 ~",
  N: "c4@2 d4 ~ f4 ~ d4 ~ c4@2 d4 ~ f4 ~ d4 ~", O: "b4@2 d5 ~ e5 ~ d5 ~ b4@2 d5 ~ e5 ~ d5 ~",
  P: "b4@2 d5 ~ e5 ~ d5 ~ f5@2 e5 ~ d5 ~ c5 ~", Q: "e4",
})).s("gm_viola").gain(0.25)

// other · pizzicato strings
const pizzicato_strings_3 = note(`<
  ~@16 A@2 B@2 C@2 ~@2 A@2 B@2 ~@8 C@2 D E ~@4 F@2 G@2 A@2 B@2 C@2 ~@2 A@2 B@2 ~@8 C@2 D E ~@4 F@2 G@2 ~@20 C@2 D E ~@4
  F@2 G@2 H@4 I@2 J@2 H@4 I@2 J@2 H@4 I@2 J@2 H@4 I@2 J ~@2
>`.pickRestart({
  A: "a3@3 e4@3 e4@6 a3@4", B: "f3@3 d4@3 d4@6 f3@4", C: "c4@3 e4@3 e4@6 c4@4", D: "e3@3 e4@3 e4@6 e3@4",
  E: "e3@3 e4@3 e4@6 ~@4", F: "c4@3 e4@3 e4@4 e4@2 c4@4", G: "e3@3 e4@3 e4@4 e4@2 e3@4", H: "a3@3 a3@3 a3@4 a3@2 a3@4",
  I: "g3@3 g3@3 g3@4 g3@2 g3@4", J: "g#3@3 g#3@3 g#3@4 g#3@2 g#3@4",
})).s("gm_pizzicato_strings").gain(0.4)

// other · cello
const cello = note(`<
  A@2 B@2 C@2 D@2 ~@72 E F@2 G@2 ~@3 E F@2 G@2 H@2 I ~@16 J@2 K@2 L@2 A@2 J@2 K@2 L@2 A@2 M@2 N@2 B@2 O@2 M@2 N@2 B@2 O
  P ~
>`.pickRestart({
  A: "e3/2", B: "c3/2", C: "g3/2", D: "[b2@3 ~]/2", E: "~@13 c4 c4@2",
  F: "[c4@3 g4@2 c4 c4@2 c4@3 g4@3 f4@10 ~@5 c4 c4@2]/2", G: "[c4@3 g4@2 c4 c4@2 c4@3 g4@3 e4@10 ~@8]/2",
  H: "[~@2 [g2,e3]@2 [g2,e3]@2 [g2,e3]@2 [g2,e3]@3 [g2,e3]@3 [g2,e3]@4 [g2,d3]@4 [g2,e3]@2 [g2,e3]@2 [g2,e3]@2 [g2,e3]@2 [g2,e3]@2]/2", // C G5 C
  I: "[g2,g3] [e2,e3]@2 [g2,g3]@2 [g2,e3]@2 [a2,a3]", J: "[a2@6 b2 c3]/2", K: "[f2@6 e3 f3]/2", L: "[g3@3 d3]/2",
  M: "a2/2", N: "f2/2", O: "b2", P: "f3 e3 d3 ~",
})).s("gm_cello").gain(0.45)

// other · cello · soft notes
const cello_soft = note("<~@8 A@2 B@2 C@2 D@2 ~@127 E F>".pickRestart({
  A: "e3/2", B: "c3/2", C: "g3/2", D: "b2/2", E: "~@3 c3", F: "a2",
})).s("gm_cello").gain(0.2)

// other · pizzicato strings
const pizzicato_strings_4 = note(`<
  ~@16 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 F@2 G@2 H@2 I@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2
  F@2 G@2 H@2 I@2 ~@16 A@2 B@2 C@2 E@2 F@2 G@2 H@2 I@2 ~@33
>`.pickRestart({
  A: "a2@3 c3@3 c3@6 a2@4", B: "f2@3 c3@3 c3@6 f2@4", C: "c3@3 c3@3 c3@6 c3@4", D: "e2@3 e3@3 e3@6 e2@4",
  E: "e2@3 b2@3 b2@6 e2@4", F: "a2@3 c3@3 c3@4 c3@2 a2@4", G: "f2@3 c3@3 c3@4 c3@2 f2@4", H: "c3@3 c3@3 c3@4 c3@2 c3@4",
  I: "e2@3 b2@3 b2@4 b2@2 e2@4",
})).s("gm_pizzicato_strings").gain(0.4)

// bass · contrabass
const bass = note(`<
  A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 ~@64 F@2 G@2 F@2 H I F@2 G@2 F@2 H I ~@16 J@2 K@2 L@2 M@2 J@2 K@2 L@2 M@2 C@2 A@2 N@2
  O@2 C@2 A@2 N@2 O P Q
>`.pickRestart({
  A: "a1/2", B: "f1/2", C: "c2/2", D: "[e1@3 ~]/2", E: "e1/2", F: "a2@2 b2 ~ c3 ~ b2 ~ a2@2 b2 ~ c3 ~ b2 ~",
  G: "a2@2 b2 ~ d3 ~ b2 ~ a2@2 b2 ~ d3 ~ b2 ~", H: "d3@2 f3 ~ g3 ~ f3 ~ d3@2 f3 ~ g3 ~ f3 ~",
  I: "d3@2 f3 ~ g3 ~ f3 ~ g3@2 g3 ~ f3 ~ e3 ~", J: "[f2@6 f2 e2]/2", K: "[c2@6 c2 d2]/2", L: "[e2@3 f2]/2", M: "g#2/2",
  N: "g1/2", O: "g#1", P: "c2 b1 a1 g1", Q: "a1",
})).s("gm_contrabass").gain(0.25)

// bass · acoustic bass
const bass_2 = note(`<
  ~@16 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 F@2 G@2 H@2 I@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2
  F@2 G@2 H@2 I@2 ~@16 A@2 B@2 C@2 E@2 F@2 G@2 H@2 I@2 ~@33
>`.pickRestart({
  A: "a1@3 a2@3 a2@6 a1@4", B: "f1@3 a1@3 a1@6 f1@4", C: "c2@3 g1@3 g1@6 c2@4", D: "e1@3 g#2@3 g#2@6 e1@4",
  E: "e1@3 g2@3 g2@6 e1@4", F: "a1@3 a2@3 a2@4 a2@2 a1@4", G: "f1@3 a1@3 a1@4 a1@2 f1@4", H: "c2@3 g1@3 g1@4 g1@2 c2@4",
  I: "e1@3 g2@3 g2@4 g2@2 e1@4",
})).s("gm_acoustic_bass").gain(0.4)

stack(
  pizzicato_strings, violin, pizzicato_strings_2, viola, pizzicato_strings_3, cello, cello_soft, pizzicato_strings_4,
  bass, bass_2
)

More by Imagine Dragons