Strudelify
Dream On cover art

1973 · Aerosmith

Dream On

Aerosmith

KeyF minorTempo78 bpm
0:00/0:00
// Dream On — Aerosmith
// 78 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 70 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(78/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 · distortion guitar · "HVYMETL2"
const distortion_guitar = note(`<
  A B C D A B C D A B A B A B A B E B F G H I H I A B C D J K J@6 L M N O P@2 Q R S ~ Q R ~ T Q R U V P@2 W R W R W R W
  X P@2 K@4
>`.pickRestart({
  A: "f4 c4 f4 c4 eb4 c4 eb4 c4", B: "f4 c4 f4 c4 f4 c4 f4 c4", C: "f4 c4 f4 c4 g4 c4 g4 c4", D: "ab4 c4 ab4 c4 ab4@4",
  E: "f4 c4 f4 c4 f4 c4 e4 c4", F: "e4!2 f4!2", G: "gb4@4 gb4@4 g4@4 g4!2 g4@2", H: "ab4!2 g4!2", I: "f4!2 g4!2",
  J: "f4 ~ f4 ~ eb4 ~ eb4 ~", K: "f4 ~ f4 ~ f4 ~ f4 ~", L: "f4@2 f4!2 eb4@2 eb4!2", M: "db4@2 db4!2 eb4@2 eb4!2",
  N: "c4 ~@7 eb4 ~@7", O: "f4 ~@7 ab4 ~@7", P: "bb3 g3 bb3 g3 bb3 g3 bb3 g3", Q: "f3@3 f3 g3@3 g3",
  R: "ab3@3 ab3 bb3@3 bb3", S: "c4!4", T: "~ eb4!2 ~ eb4!3 ~ eb4 f4!2 gb4!2 f4 f4@2", U: "a3@3 a3 b3@3 b3",
  V: "c4@3 c4 d4@3 d4", W: "c4@3 c4 bb3@3 bb3", X: "c4@3 c4 db4@3 db4",
})).s("gm_distortion_guitar").gain(0.46)

// other · distortion guitar · "HVYMETL2"
const distortion_guitar_2 = note(`<
  ~ A ~ B ~ A ~ B ~ A ~ A ~ A ~ A C A D E F G F G ~ A ~ B ~ A ~ A ~ A ~ A H I J K L@2 M N O ~ M N ~@2 P N@2 Q L@2 R N R
  N R N R S L@2 T@4
>`.pickRestart({
  A: "d4 ~ d4 ~ db4 ~ db4 ~", B: "~ f4", C: "d4 ~ d4 ~ d4 ~ c4 ~", D: "c4!2 db4!2", E: "d4@4 d4@4 e4@4 e4!2 e4@2",
  F: "f4!2 eb4!2", G: "db4!2 eb4!2", H: "c4@2 c4!2 bb3@2 bb3!2", I: "ab3@2 ab3!2 bb3@2 bb3!2", J: "ab3 ~@7 bb3 ~@7",
  K: "c4 ~@7 f4 ~@7", L: "f3 e3 f3 e3 f3 e3 f3 e3", M: "d3@3 d3 e3@3 e3", N: "f3@3 f3 g3@3 g3", O: "ab3!4",
  P: "db3@3 db3 eb3@3 eb3", Q: "ab3@3 ab3 bb3@3 bb3", R: "ab3@3 ab3 g3@3 g3", S: "ab3@3 ab3 ab3@3 ab3",
  T: "db4 ~ db4 ~ db4 ~ db4 ~",
})).s("gm_distortion_guitar").gain(0.46)

// other · rock organ · "ORGAN4"
const rock_organ = note(`<
  ~@8 A B C D E@2 F G H I@3 J K L M@2 ~@3 N O P Q R S T U V W X Y@3 Z AA AB ~ Z AA AC ~ Z@3 AD AE@2 V AF X AG V AF X AH
  AI ~@5
>`.pickRestart({
  A: "~@4 b4@3 c5 f5@5 c5 ab4@2", B: "c5@4 b4@2 c5 b4@3 ab4@4 ~@2", C: "~@4 c5@2 c5@2 f5@6 c5 ab4",
  D: "c5@4 bb4 c5@2 bb4@2 ab4 bb4@4 ~@2", E: "[~@10 c5 ab4@3 bb4 f4@9 ~@8]/2", F: "g5@4 f5@4 eb5@4 ~@2 c5 bb4",
  G: "ab4@4 bb4@2 c5 ab4@2 eb4 f4@6", H: "~@2 f4 g4 ab4@2 bb4 c5@5 ~@4",
  I: "[ab5!4 g5 f5!2 f5@2 eb5!2 c5 bb4@2 ab4 c5@25 ~@8]/3", J: "~ f5@3 eb5@4 f5 f5@2 eb5 c5@4",
  K: "f5 eb5@2 f5 eb5@2 eb5 f5 eb5@2 eb5 f5 eb5@2 ~@2", L: "~ f5@3 eb5@3 eb5 f5 eb5 f5 eb5 c5@4",
  M: "[f5 eb5@2 c5 bb4@2 ab4 bb4@2 ab4 bb4@3 ab4 bb4 f4@17]/2", N: "~@3 c5@3 c5@2 f5@6 ab4@2",
  O: "c5@4 bb4 c5@2 bb4@3 ab4@4 ~@2", P: "~@4 bb4 c5@3 f5@6 ab4@2", Q: "c5@4 bb4@2 c5 bb4@3 bb4@6",
  R: "~@10 bb4 ab4@3 bb4@2", S: "f4", T: "~@4 g5@2 ab5@2 ab5 g5 f5@2 ~@4", U: "~@2 f5@2 g5@2 ab5 g5@2 ab5 f5@6",
  V: "~@2 ab5@2 g5 f5@3 g5@2 g5 ab5 g5 f5 ~@2", W: "ab5@2 f5 eb5 f5@2 eb5 f5 eb5 f5 eb5 f5@2 eb5 f5@2",
  X: "~@2 ab5@2 g5 f5 g5 f5 g5 g5@2 ab5 g5 f5 ~@2",
  Y: "[ab5!4 g5 f5@2 g5 ab5!2 g5 f5 g5 f5!2 g5@8 eb5@3 c5 bb4 c5@12 ~@8]/3", Z: "~@2 ab5@2 g5 f5@3 ~@2 ab5@2 g5 f5@3",
  AA: "~@2 ab5@2 g5 f5@3 ab5!2 g5 f5 f5@2 f5@2", AB: "ab5 f5", AC: "~ f5 ~@6", AD: "~@2 ab5@2 g5 f5@3 ~@2 ab5@6",
  AE: "g5 ab5 g5 ab5 g5 ab5 g5 ab5", AF: "ab5@2 f5 eb5 f5@2 eb5 f5@3 eb5 f5 eb5 f5 eb5 f5",
  AG: "ab5!2 f5 ab5 g5 ab5@2 g5 ab5@2 ab5 f5!3 eb5 f5", AH: "ab5!3 ab5@2 f5@2 f5 ab5!2 g5 f5 g5 g5@2 f5", AI: "g5 ~",
})).s("gm_rock_organ").gain(0.51)

// other · distortion guitar · "HVYMETL2"
const distortion_guitar_3 = note("<~@18 [~@2 c4!2] [c4@4 c4@4 c4@4 c4!2 c4@2] ~@17 [~@4 g3@2 g3!2] ~@32>")
  .s("gm_distortion_guitar").gain(0.46)

// bass · electric guitar clean · "HVYMETL3"
const bass = note(`<
  A@3 B A@3 B A C A D A C A E F G H@2 I J I J A K@2 B A D A D A C L M N O N P Q@2 R S T U R S V W R S X Y Q@2 N S N S N
  S N P Q@2 Z@4
>`.pickRestart({
  A: "f1", B: "f0", C: "f0@7 c1", D: "f0@14 c1!2", E: "f0@15 g0", F: "d1@3 d1 c1@3 c1", G: "d1@3 d1 db1@3 db1",
  H: "c1!8", I: "f1@3 f1 eb1@3 eb1", J: "db1@3 db1 eb1@3 eb1", K: "[f1@8 f0 g0 ab0 bb0 c1 eb1 ab1 f1@17]/2",
  L: "f1@7 c1", M: "f0@6 c1@2 f0@2 ab0@2 bb0@2 c1 eb1", N: "f2@3 f2 eb2@3 eb2", O: "db2@6 db2@2 eb2@5 eb2 f2 eb2",
  P: "d2@3 d2 db2@3 db2", Q: "c2!8", R: "bb1@3 bb1 c2@3 c2", S: "db2@3 db2 eb2@3 eb2", T: "f2!4", U: "f1!4",
  V: "f1@2 f1 eb1 f1 ab1@3 f1@2 f1 eb1 f1 ab1@3", W: "f1!7 eb2 f2!6 f2@2", X: "f1@3 f1 g1@3 g1",
  Y: "ab1@3 ab1 bb1@3 bb1", Z: "c2/2",
})).s("gm_electric_guitar_clean").gain(0.51)

stack(distortion_guitar, distortion_guitar_2, rock_organ, distortion_guitar_3, bass)

More by Aerosmith