Strudelify

Burn It Down

Attila

KeyA majorTempo85 bpm
0:00/0:00
// Burn It Down — Attila
// 85 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 overdriven guitar (copy of ch 1 distortion guitar); ch 6 distortion guitar (copy of ch 1 distortion guitar); ch 7 overdriven guitar (copy of ch 1 distortion guitar); ch 16 distortion guitar (copy of ch 11 distortion guitar)
// note: Full arrangement: all 62 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(85/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · distortion guitar
const distortion_guitar = note(`<
  A B A C A D A B A E F@4 A B A E F@4 G@3 H I J@2 K A B A B A B A B F@3 L M@4 F@4 G@3 N O@3 P I J@3
>`.pickRestart({
  A: "[g2,d3,g3] [a2,e3,a3]!4 ~ [g2,d3,g3]!2 ~ [f#2,c#3,f#3]!2 ~@2 [f#2,c#3,f#3] [g2,d3,g3] ~", // G5 A5 G5 F#5 G5
  B: "[g2,d3,g3] [a2,e3,a3] ~ [a2,e3,a3]!2 ~ [g2,d3,g3]!2 ~ [f#2,c#3,f#3]!2 ~@2 [f#2,c#3,f#3] [g2,d3,g3] ~", // G5 A5 G5 F#5 G5
  C: "[g2,d3,g3] [a2,e3,a3] ~ [a2,e3,a3]!2 ~ [g2,d3,g3]!2 ~ [f#2,c#3,f#3]!2 ~ [f#2,c#3,f#3]!2 [g2,d3,g3] ~", // G5 A5 G5 F#5 G5
  D: "[g2,d3,g3] ~ [a2,e3,a3]!3 ~ [g2,d3,g3]!2 ~ [f#2,c#3,f#3] ~ [g2,d3,g3] ~ [f#2,c#3,f#3] ~ e2", // G5 A5 G5 F#5 G5 F#5
  E: "[g2,d3,g3] [a2,e3,a3] ~ [a2,e3,a3]!2 ~ [g2,d3,g3]!2 ~ [f#2,c#3,f#3] ~ [g2,d3,g3] ~ [f#2,c#3,f#3] ~ e2", // G5 A5 G5 F#5 G5 F#5
  F: "[e2,b2,e3]!4 ~ [e2,b2,e3] ~ [e2,b2,e3] [g#2,d#3,g#3]!3 [f#2,c#3,f#3]@2 [f#2,c#3,f#3] [g#2,d#3,g#3] e2", // E5 G#5 F#5 G#5
  G: "[f#2,c#3,f#3]!3 [e2,b2,e3] e2!4 [f#2,c#3,f#3] [g2,d3,g3] [g#2,d#3,g#3] [e2,b2,e3] e2!4", // F#5 E5 F#5 G5 G#5 E5
  H: "[f#2,c#3,f#3]!3 [e2,b2,e3] e2!4 [f#2,c#3,f#3] [g2,d3,g3] [g#2,d#3,g#3] [e2,b2,e3] ~ [e2,b2,e3]!3", // F#5 E5 F#5 G5 G#5 E5
  I: "~ [e2,b2,e3] ~ [e2,b2,e3]!3 ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] [f#2,c#3,f#3] [g2,d3,g3] [g#2,d#3,g#3] [e2,b2,e3]", // E5 F#5 G5 G#5 E5
  J: "~ [e2,b2,e3]!2 ~ [e2,b2,e3]!2 ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] [f#2,c#3,f#3] [g2,d3,g3] [g#2,d#3,g#3] [e2,b2,e3]", // E5 F#5 G5 G#5 E5
  K: "~ [e2,b2,e3]!2 ~ [e2,b2,e3]!2 ~ [e2,b2,e3]!2 ~@7", L: "[e2,b2,e3]!4 ~ [e2,b2,e3] ~ [e2,b2,e3] [g#2,d#3,g#3] ~@7",
  M: "[e2,b2]!4 ~ [e2,b2] ~ [e2,b2] [g#2,d#3]!3 [f#2,c#3]!3 [g#2,d#3] e2", // E5 G#5 F#5 G#5
  N: "[f#2,c#3,f#3]!3 [e2,b2,e3] e2!4 [f#2,c#3,f#3] [g2,d3,g3] [g#2,d#3,g#3] [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3]", // F#5 E5 F#5 G5 G#5 E5
  O: "[f#2,c#3,f#3]!3 [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] [f#2,c#3,f#3] [g2,d3,g3] [g#2,d#3,g#3] [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3]", // F#5 E5 F#5 G5 G#5 E5
  P: "[f#2,c#3,f#3]!3 [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] [f#2,c#3,f#3] [g2,d3,g3] [g#2,d#3,g#3] [e2,b2,e3] ~ [e2,b2,e3]!3", // F#5 E5 F#5 G5 G#5 E5
})).s("gm_distortion_guitar").gain(0.36).pan(0.4)

// bass · electric bass finger
const bass = note(`<
  ~@2 A B A C A B A D E@4 A B A C E@4 F@3 G H I@2 J A B A B A B A K E@3 L M@4 E@4 F@3 N O@3 P H I@3
>`.pickRestart({
  A: "g1 a1!4 ~ g1!2 ~ f#1!2 ~@2 f#1 g1 ~", B: "g1 a1 ~ a1!2 ~ g1!2 ~ f#1!2 ~@2 f#1 g1 ~",
  C: "g1 a1 ~ a1!2 ~ g1!2 ~ f#1 ~ g1 ~ f#1 ~ e1", D: "g1 a1 ~ a1!2 ~ g1!2 ~ f#1 ~ g1 ~ f#1 ~@2",
  E: "e1!4 ~ e1 ~ e1 g#1!3 f#1@2 f#1 g#1 e1", F: "c#1!3 b0 ~@4 f#1 g1 g#1 e1 ~@4",
  G: "c#1!3 b0 ~@4 f#1 g1 g#1 e1 ~ e1!3", H: "~ e1 ~ e1!3 ~ e1 ~ e1 ~ e1 f#1 g1 g#1 e1",
  I: "~ e1!2 ~ e1!2 ~ e1 ~ e1 ~ e1 f#1 g1 g#1 e1", J: "~ e1!2 ~ e1!2 ~ e1!2 ~@7",
  K: "g1 a1 ~ a1!2 ~ g1!2 ~ f#1!2 ~@2 f#1 g1 e1", L: "e1!4 ~ e1 ~ e1 g#1@2 ~@6", M: "e1!4 ~ e1 ~ e1 g#1!3 f#1!3 g#1 e1",
  N: "c#1!3 b0 ~@4 f#1 g1 g#1 e1 ~ e1 ~ e1", O: "c#1!3 b0 ~ b0 ~ b0 f#1 g1 g#1 e1 ~ e1 ~ e1",
  P: "c#1!3 b0 ~ b0 ~ b0 f#1 g1 g#1 e1 ~ e1!3",
})).s("gm_electric_bass_finger").gain(0.57)

// chords · distortion guitar
const distortion_guitar_2 = note("<A B A B A C A B A C ~@4 A B A C ~@12 A B A B A B A B ~@24>".pickRestart({
  A: "~@8 [f#2,c#3] ~@3 [f#2,c#3] ~@3", B: "~@2 [f#2,c#3] ~@9 [f#2,c#3] ~@3", C: "~@2 [f#2,c#3] ~@13",
})).s("gm_distortion_guitar").gain(0.64)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@8 B C D C A@4 B C D C E@3 F G H@2 I A@8 B C D J K@3 L B C D B E@3 M@2 N M O G H G H
>`.pickRestart({
  A: "x ~ x!2 ~@2 x!2 ~ x!2 ~@5", B: "x ~ x!2 ~@2 x ~ x ~ x!2 ~@4", C: "x ~ x!2 ~@3 x!2 ~ x!2 ~@4",
  D: "x ~ x!2 ~@3 x!2 ~ x!2 ~@2 x ~", E: "x!2 ~ x ~ x ~@2 x!2 ~ x ~ x ~@2", F: "x!2 ~ x ~ x ~@2 x!2 ~ x ~ x!3",
  G: "~ x ~ x ~ x ~ x ~ x ~ x ~@2 x ~", H: "~ x!2 ~@2 x ~ x ~ x ~ x ~@2 x ~", I: "~ x!2 ~@2 x ~@10",
  J: "x ~ x!2 ~@3 x ~@8", K: "x ~ x!2 ~ x ~ x ~ x!3 ~ x ~ x", L: "x ~ x!2 ~ x ~ x!2 ~@2 x!2 ~@3",
  M: "x!2 ~ x ~ x ~@2 x!2 ~ x ~ x ~ x", N: "x!2 ~ x ~ x ~ x!3 ~ x ~ x ~ x", O: "x!2 ~ x ~ x ~ x!3 ~ x ~@4",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@7 B A C A C A@5 C A C A D A@2 E@3 D A@9 C A F G@3 H A C A@3 D A D A D A D E@4
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x!4", C: "~@4 x ~@7 x ~ x!2", D: "~ x ~@2", E: "~@4 x ~@7 x ~@2 x", F: "~ x!2 ~",
  G: "~@2 x ~@3 x!2", H: "~@4 x ~@4 x!2 ~@2 x!3",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~@22 A@3 B ~@16 A@3 C ~@4 D A@3 ~@8>".pickRestart({
  A: "x!8", B: "x!7 ~", C: "x ~ x ~ x ~ x ~ x ~@2 x!2 ~@3", D: "~ x!7",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@2 A B@3 A B@3 A B@3 A B@3 A B@3 ~@8 A B@10 C ~@4 B@4 ~@4 B@3 D ~@4>".pickRestart({
  A: "~ x!7", B: "x!8", C: "x!4 ~@4", D: "x!7 ~",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@2 A ~@3 A ~@3 A ~@3 A ~@3 A ~@4 B ~ C D E@2 F A ~@10 G ~@8 A B ~@5 C D E D E
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~@13 x!3", D: "~ x ~ x!3 ~ x ~ x ~ x!5", E: "~ x!2 ~ x!2 ~ x ~ x ~ x!5",
  F: "~ x!2 ~ x!2 ~ x!2 ~@7", G: "~ x",
})).gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@41 [~@13 x!2 ~] ~@20>").gain(0.64)

stack(distortion_guitar, bass, distortion_guitar_2, kick, snare, hihat, open_hat, crash, high_tom)

More by Attila