Strudelify

Don't Bring Me Down

Electric Light Orchestra

KeyA majorTempo116 bpm
0:00/0:00
// Don't Bring Me Down — Electric Light Orchestra
// 116 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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.

// chords · piano · "A.PIANO 2"
const piano = note(`<
  ~@3 A@8 B@2 C@2 D E F@2 G A@3 B@2 C@2 D E H ~ I J I J I J K@2 L@4 M@2 L@2 N O P L@5 M@2 L@2 N O P Q I J I J I J R@2
  ~@5 M@2 S@2 T U S@2 V W V W V W X Y P@4 M@2 P@2 N Z P@2 S@4 AA@2 S@2 T AB ~
>`.pickRestart({
  A: "[e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~", // A
  B: "[d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~", // D
  C: "[c#4,e4,a4,c#5] ~ [c#4,e4,a4,c#5] ~ [c#4,e4,a4,c#5] ~ [c#4,e4,a4,c#5] ~ [c#4,e4,a4,c#5] ~ [c#4,e4,a4,c#5] ~ [c#4,e4,a4,c#5] ~ [c#4,e4,a4,c#5] ~", // A
  D: "[c4,e4,g4,c5] ~ [c4,e4,g4,c5] ~ [c4,e4,g4,c5] ~ [c4,e4,g4,c5] ~ [c4,e4,g4,c5] ~ [c4,e4,g4,c5] ~ [c4,e4,g4,c5] ~ [c4,e4,g4,c5] ~", // C
  E: "[d4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~", // Csus2 G D
  F: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A
  G: "[c#4,e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~", // A
  H: "[c#4,e4,a4] ~@15", // A
  I: "[a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~", // F#m
  J: "~@2 [a3,c#4,e4,a4] ~@2 [a3,c#4,e4,a4] ~@2 [a3,c#4,e4,a4]@2 ~ [a3,c#4,e4,a4] ~@2 [a3,c#4,e4,a4] ~", // A
  K: "[[b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~, ~@9 c-1@22 ~]/2", // E
  L: "[e5,a5,c#6,e6] ~ [e5,a5,c#6,e6] ~ [e5,a5,c#6,e6] ~ [e5,a5,c#6,e6] ~ [e5,a5,c#6,e6] ~ [e5,a5,c#6,e6] ~ [e5,a5,c#6,e6] ~ [e5,a5,c#6,e6] ~", // A
  M: "[d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] ~", // D
  N: "[c5,e5,g5,c6] ~ [c5,e5,g5,c6] ~ [c5,e5,g5,c6] ~ [c5,e5,g5,c6] ~ [c5,e5,g5,c6] ~ [c5,e5,g5,c6] ~ [c5,e5,g5,c6] ~ [c5,e5,g5,c6] ~", // C
  O: "[b4,d5,g5,b5] ~ [b4,d5,g5,b5] ~ [b4,d5,g5,b5] ~ [b4,d5,g5,b5] ~ [a4,d5,f#5,a5] ~ [a4,d5,f#5,a5] ~ [a4,d5,f#5,a5] ~ [a4,d5,f#5,a5] ~", // G D
  P: "[c#5,e5,a5,c#6] ~ [c#5,e5,a5,c#6] ~ [c#5,e5,a5,c#6] ~ [c#5,e5,a5,c#6] ~ [c#5,e5,a5,c#6] ~ [c#5,e5,a5,c#6] ~ [c#5,e5,a5,c#6] ~ [c#5,e5,a5,c#6] ~", // A
  Q: "[c#5,e5,a5,c#6]@3 ~@13", // A
  R: "[e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~", // E
  S: "[a5,c#6,e6,a6] ~ [a5,c#6,e6,a6] ~ [a5,c#6,e6,a6] ~ [a5,c#6,e6,a6] ~ [a5,c#6,e6,a6] ~ [a5,c#6,e6,a6] ~ [a5,c#6,e6,a6] ~ [a5,c#6,e6,a6] ~", // A
  T: "[g5,c6,e6,g6] ~ [g5,c6,e6,g6] ~ [g5,c6,e6,g6] ~ [g5,c6,e6,g6] ~ [g5,c6,e6,g6] ~ [g5,c6,e6,g6] ~ [g5,c6,e6,g6] ~ [g5,c6,e6,g6] ~", // C
  U: "[g5,c6,d6,g6] ~ [g5,b5,d6,g6] ~ [g5,b5,d6,g6] ~ [g5,b5,d6,g6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~", // Gsus4 G D
  V: "[a4,c#5,f#5,a5] ~ [a4,c#5,f#5,a5] ~ [a4,c#5,f#5,a5] ~ [a4,c#5,f#5,a5] ~ [a4,c#5,f#5,a5] ~ [a4,c#5,f#5,a5] ~ [a4,c#5,f#5,a5] ~ [a4,c#5,f#5,a5] ~", // F#m
  W: "~@2 [e5,a5,c#6,e6] ~@2 [e5,a5,c#6,e6] ~@2 [e5,a5,e6]@2 ~ [e5,a5,c#6,e6] ~@2 [e5,a5,c#6,e6] ~, ~@8 c#6 ~@7", // A A5 A
  X: "[e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6]@2 ~ [g#5,b5,e6]@2 ~ [g#5,b5,e6]@2, ~@11 e5 ~ e5@3", // E
  Y: "[e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6]@2 ~ [g#5,b5,e6]@2 e5 [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~ [e5,g#5,b5,e6] ~, ~@7 e5 ~@8", // E
  Z: "[b4,d5,g5,b5] ~ [b4,d5,g5,b5] ~ [b4,d5,g5,b5] ~ [d5,g5,b5] ~ [a4,d5,f#5,a5] ~ [a4,d5,f#5,a5] ~ [a4,d5,f#5,a5] ~ [a4,d5,f#5,a5] ~", // G D
  AA: "[a5,d6,f#6,a6] ~ [a5,d6,f#6,a6] ~ [a5,d6,f#6,a6] ~ [a5,d6,f#6,a6] ~ [a5,d6,f#6,a6] ~ [a5,d6,f#6,a6] ~ [a5,d6,f#6,a6] ~ [a5,d6,f#6,a6] ~", // D
  AB: "[g5,b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~", // G D
})).s("gm_piano").gain(0.38).pan(0.6)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@2 A B C B C B C B D E F B@2 G H B C B C B D E F B@2 G H I ~ J K J K J K L M B C B D E F B@2 G H B@3 N@2 O P Q B@2 G
  H B I J K J K J K L M ~@5 E F B@2 G R B S T U T V T K W X B N@2 Y P Q B@2 G R B Z B C B D E F B@2 G H ~
>`.pickRestart({
  A: "~@5 e2 d2 c2", B: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", C: "a1 ~ a1 ~ a1 ~ a1 ~ a1@2 e2@2 d2@2 c2@2",
  D: "a1 ~ a1 ~ a1 ~ a1 ~ a1@2 a1@2 c2@2 d2@2", E: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  F: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ e2@2 d2@2 c2@2", G: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  H: "g1 ~ g1 ~ g1 ~ g1 ~ d2 ~ e2@2 d2@2 c2@2", I: "a1 ~@3", J: "f#1 ~ f#1!3 ~ f#1!3 ~ f#1!3 ~ f#1 g#1",
  K: "a1 ~ a1!3 ~ a1!3 ~ a1!3 ~ a1 ~", L: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1@2 e1 ~",
  M: "e1@2 e1 ~ e1 ~ e1 ~ e1 ~ e2@2 d2@2 c2@2", N: "g1@2 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  O: "g1@2 a1 ~ a1 ~ a1 ~ g1@2 a1 ~ a1 ~ a1 ~", P: "c2@3 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  Q: "c2@3 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2 c2@2", R: "g2 ~ g2 ~ g2 ~ g2 ~ d2 ~ e2@2 d2@2 c2@2",
  S: "a1 ~ a1 ~ a1 ~ a1 ~ a1@2 a1@2 g#1@2 g1@2", T: "f#1 ~ f#1!3 ~ f#1!3 ~ f#1!3 ~ f#1 ~",
  U: "a1 ~ a1!3 ~ a1!3 ~ a1 ~ g#1@2 g1@2", V: "a1 ~ a1!3 ~ a1!3 ~ a1@2 g#1@2 g1@2",
  W: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", X: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e2@2 d2@2 c2@2",
  Y: "g1@2 a1 ~ a1 ~ a1 ~ g1@2 a1 ~ a1 ~ c2 ~", Z: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ e2@2 d2@2 c2@2",
})).s("gm_electric_bass_finger").gain(0.44)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@2 A B@6 C@2 D@2 E@2 ~ A F@2 B@2 G@2 D@2 H@2 ~ A I J K L M L K N O@2 B@2 P@2 Q@2 H@2 ~ A B@4 R@2 D@2 E@2 ~ S T@2 K L
  M L K N O@2 ~@5 Q@2 H@2 ~ A U@2 V W X W V Y Z@2 B@2 AA@2 D@2 AB@2 ~ A F@2 AC@2 AD@2 D@2 AB@2 ~ A ~
>`.pickRestart({
  A: "~@5 d4@2 c4", B: "[a3@25 ~ d4@4 c4@2]/2", C: "[a3@12 ~ a3 c4 d4]/2", D: "[d4@25 ~ d4@4 c4@2]/2", E: "a3/2",
  F: "[a3@12 ~ d4@2 c4]/2", G: "[a3@25 ~ a3@2 c4@2 d4 ~]/2", H: "[a3@29 ~@3]/2", I: "a3 ~@3", J: "~@5 e2!2 f2",
  K: "f#2@5 f#2!2 g#2", L: "a2@9 ~ a2@2 e2@2 f2@2", M: "f#2@9 ~ f#2@2 f#2@2 g#2@2", N: "a2@13 ~ a2@2",
  O: "[e2@23 ~@3 d4@4 c4@2]/2", P: "[a3@25 ~ a3@2 c4@2 d4@2]/2", Q: "[d4@12 ~ d4@2 c4]/2",
  R: "[a3@24 ~@2 a3@2 a3@2 c4 ~]/2", S: "~@10 d4@4 c4 ~", T: "[a3@9 ~@4 e2!2 f2]/2", U: "[a3@25 ~ a2@2 g#2@2 g2@2]/2",
  V: "f#2@5 e2 f#2 g#2", W: "a2@9 ~ a2@2 g#2@2 g2@2", X: "f#2@9 ~ e2 ~ f#2@2 g#2@2", Y: "a2@9 ~ a2@2 a2 ~ a2@2",
  Z: "[e2@12 ~ d4@2 c4]/2", AA: "[a3@25 ~ a3@2 a3@2 c4@2]/2", AB: "[a3@31 ~]/2", AC: "[a3@25 ~ d4@4 c4 ~]/2",
  AD: "[a3@25 ~ a3@2 a3@2 c4 ~]/2",
})).s("gm_overdriven_guitar").gain(0.44)

// chords · pad halo · "HALO PAD"
const pad_halo = note(`<
  ~@14 A B@2 C ~@9 D@2 E F@8 G H@2 I@3 J K@2 B@2 L ~ H@2 M@3 J K@2 B@2 C N@8 O ~ P@2 M@3 Q R@2 D@2 C ~@9 H@2 M@3 S T@2
  B@2 E ~@8 A B@2 U
>`.pickRestart({
  A: "~@7 [c#4,a4]", B: "[[e4,c5]@9 b4@2 a4@2 e4 d4 c4, ~@9 d4@4 ~@3]/2", C: "a3 ~",
  D: "[[e4,c5]@18 b4@4 a4@3 ~ e4@2 d4@2 c4@2, ~@9 d4@4 ~@3]/2", E: "a3@5 ~@11",
  F: "[~@10 [e4,a4]@4 [d4,g#4]@6 [c#4,f#4]@7 ~@4 [e4,a4]@6 ~@5 [e4,a4]@4 [d4,g#4]@6 f#4@4 a3@7 [e4,a4]@8 ~@3 [e4,a4]@4 [d4,g#4]@6 [c#4,f#4]@5 ~@5 [e4,a4]@5 ~@7 a4@5 b4@11 g#4@4 f#4@2, ~@52 c#4@11 ~@65]/8", // A5 Ddim F#5 A5 Ddim A5 Ddim F#5 …
  G: "g#4 f#4 e4@11 ~@3", H: "[~@2 e4@4 d4@2 c#4@4 d4@2 c#4@2 e4@4 d4@2 c#4@3 ~@7, ~@2 a4@23 ~@7]/2",
  I: "[~ e4@2 d4 c#4@2 d4 c#4 e4@2 d4 c#4@2 [a3,c5] [c4,b4] d4 f#3@4 ~@4, ~ a4@12 ~@2 a4@5 ~@4]/3", // Am Cmaj7
  J: "[b4,d5] [a4,c5] [g4,b4] [a4,c5]", K: "[[e4,g4] [d4,f#4] [c#4,e4]@10 e5@2 c#5@7 ~@9 [c#4,a4]@2]/2", L: "a3@7 ~@9",
  M: "[~ e4@2 d4 c#4@2 d4 c#4 e4@2 d4 c#4@2 [a3,c5] [c4,b4] d4 f#3@2 ~@6, ~ a4@12 ~@2 a4@3 ~@6]/3", // Am Cmaj7
  N: "[~@10 [e4,a4]@4 [d4,g#4]@6 [c#4,f#4]@8 ~@3 [e4,a4]@6 ~@5 [e4,a4]@4 [d4,g#4]@6 f#4@4 a3@7 [e4,a4]@7 ~@4 [e4,a4]@4 [d4,g#4]@6 [c#4,f#4]@6 ~@4 [e4,a4]@6 ~@6 a4@5 b4@11 g#4@4 f#4@2, ~@52 c#4@11 ~@65]/8", // A5 Ddim F#5 A5 Ddim A5 Ddim F#5 …
  O: "g#4 f#4 e4@14", P: "[~ e4@2 d4 c#4@2 d4 c#4 e4@2 d4 c#4@2 ~@3, ~ a4@12 ~@3]/2",
  Q: "[e4,c5] [c4,a4] [a3,g4] [g3,e4]", R: "[[e3,c#4]@3 ~@2 e4 e5 c#5@3 ~@5 [c#4,a4]]/2", S: "g4 e4 d4 e4",
  T: "[c4 b3 a3@5 ~@3 e4@2 c5@2 a4@7 ~@9 [c#4,a4]@2]/2", U: "a1 ~@7, a2 ~@15",
})).s("gm_pad_halo").gain(0.35).pan(0.4)

// chords · pad poly · "POLYSYNTH"
const pad_poly = note(`<
  ~@31 A B A B A B C@2 D@4 E@2 F@2 G H I@2 J@2 K@2 E@2 J@2 L M N@2 A B A B A B O@2 ~@5 P@2 D@2 L Q D@2 A B A B A B C@2
  D@2 F@2 E@2 D@2 L M R@2 J@4 S@2 T@2 L M ~
>`.pickRestart({
  A: "[a3,c#4,f#4]@15 ~", B: "[a3,c#4,e4]@15 ~", C: "[[b3,e4,g#4]@7 ~]/2", D: "[[c#4,e4,a4]@31 ~]/2",
  E: "[[d4,f#4,a4]@31 ~]/2", F: "[c#4,e4,a4]/2", G: "[c4,e4,g4]@15 ~", H: "[b3,d4,g4]@7 ~ [a3,d4,f#4]@7 ~",
  I: "[[c#4,e4,a4]@15 ~]/2", J: "[[e4,a4,c#5]@31 ~]/2", K: "[[e4,a4,c#5]@13 ~@3]/2", L: "[e4,g4,c5]@15 ~",
  M: "[d4,g4,b4]@7 ~ [d4,f#4,a4]@7 ~", N: "[[c#4,a4]@5 ~@3, e4@7 ~@9]/2", O: "[b3,e4,g#4]/2", P: "[d4,f#4,a4]/2",
  Q: "[d4,g4,b4]@8 [d4,f#4,a4]@7 ~", R: "[[c#4,e4,a4]@29 ~@3]/2", S: "[[f#4,a4,d5]@31 ~]/2", T: "[[e4,a4,c#5]@15 ~]/2",
})).s("gm_pad_poly").gain(0.38).pan(0.4)

// other · bandoneon · "BANDNEON"
const bandoneon = note("<~@31 A B A B A B ~@26 A B A B A B ~@15 A B A B A B ~@25>".pickRestart({
  A: "~@2 c#7 ~ c#7 a6 f#6 a6 c#7 ~ c#7 ~@5", B: "c#7 a6 e6 c#7 ~ c#7!2 a6 ~@8",
})).s("gm_bandoneon").gain(0.33).pan(0.4)

// drums · kick
const kick = s("bd").struct("<[x ~@3 x!2 ~ x]!114 ~>").gain(0.49)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!114 ~>").gain(0.49)

// drums · clap
const clap = s("cp").struct("<~@71 [x!8] [~@5 x!2 ~]!10 ~@2 [~@5 x!2 ~]!6 ~@2 [~@5 x!2 ~]!22 ~>").gain(0.44)

// drums · open hat
const open_hat = s("oh").struct("<[x!8]!114 ~>").gain(0.27)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@63 [~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2]!51 ~>").gain(2.22)

// drums · shaker
const shaker = s("sh").struct("<~@63 [x!4]!51 ~>").gain(0.49)

stack(piano, bass, overdriven_guitar, pad_halo, pad_poly, bandoneon, kick, snare, clap, open_hat, cabasa, shaker)

More by Electric Light Orchestra