Strudelify
Burning Down The House cover art

1983 · Burning Down the House / I Get Wild / Wild Gravity

Burning Down The House

Talking Heads

KeyD minorTempo101 bpm
0:00/0:00
// Burning Down The House — Talking Heads
// 101 bpm, 4/4, key D minor. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(101/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.

// other · harpsichord
const harpsichord = note(`<
  ~@16 A B C B A B D B E F G H I F G J ~@8 K F G H I F G L ~ M N O ~@12 P Q R Q S Q R Q ~@16 T U T U T U T U T V W X W Y
>`.pickRestart({
  A: "g1!2 ~@10 g1!2 ~@2", B: "f1!2 ~@14", C: "g1!2 ~@6 g1!2 ~@2 g1 g1@2 ~", D: "g1!2 ~@6 a1@4 a1@4",
  E: "[g1,g2] ~ [g1,g2] [g3,d4] [g1,g2]!2 [g3,d4] ~ [g1,g2] ~ [g1,g2]!3 [g3,d4,g4] g1 [f3,c4,f4]", // G G5 G G5 G G5 F5
  F: "~ [f1,f2] ~ [f1,f2]!2 ~ [c3,f3,c4] [f2,c3] [f1,f2] ~ [f1,f2]!3 [f3,c4,f4] f1 [bb3,f4,bb4]", // F F5 F F5 Bb5
  G: "g1 [g1,g2] g1 [g1,g2] [g2,d3] g1 [d3,g3] [d2,g2] [g1,g2] ~ [g1,g2]!3 [g3,d4,g4] g1 [f3,c4,f4]", // G G5 G G5 F5
  H: "~ [f1,f2] ~ [f1,f2]!2 ~ [c3,f3,c4] [f2,c3] [f1,f2] ~ [f1,f2] [f2,c3,f3] [f1,f2] [bb2,f3,bb3]@2 f1", // F F5 F F5 F Bb5
  I: "g2 [g1,g2] g2 [g1,g2] [g2,d3] g1 [d3,g3] d2 [g1,g2] ~ [g1,g2]!3 [g3,d4,g4] g1 [f3,c4,f4]", // G G5 G G5 F5
  J: "~ [f1,f2] ~ [f1,f2]!2 ~ [c3,f3,c4] [f2,c3] [f1,f2] ~ [f1,f2] [f2,c3,f3] [f1,f2] [f3,c4,f4] f1 [bb3,f4,bb4]", // F F5 F F5 F F5 Bb5
  K: "~@2 [g1,g2] g1 [g1,g2] ~ [g1,g2,d4] ~ [g1,g2] ~ [g1,g2]!3 [g3,d4,g4] g1 [f3,c4,f4]", // G G5 G G5 F5
  L: "~ [f1,f2] ~ [f1,f2]!2 ~ [c3,f3,c4] [f2,c3] [f1,f2] ~ [f1,f2] [f2,c3,f3] [f1,f2] [f3,c4,f4] f1 [bb3,f4]", // F F5 F F5 F F5 Bb5
  M: "~@13 [d2,d4] ~ [d2,d3]", N: "~ [d1,g1]@2 ~ [d3,g3] ~ [d3,g3] ~ [d4,g4] ~ [d2,g2] [g2,d3] ~ [d4,g4] ~ [c3,f3]",
  O: "~ [c2,f2] ~@2 f3 ~@11", P: "g1 ~ [g1,g2] ~ [g1,g2] ~ [g1,g2,d4] ~ [g1,g2] ~ [g1,g2]!3 [g3,d4,g4] g1 [f3,c4,f4]",
  Q: "~ [f1,f2] ~ [f1,f2]!2 ~ [c3,f3,c4] [f2,c3] [f1,f2] ~ [f1,f2]!2 [c3,f3] [bb3,f4,bb4]@2 ~", // F F5 F F5 Bb5
  R: "g1 g2 g1 [g1,g2] g2 ~ [d3,g3] ~ [g1,g2] ~ [g1,g2]!3 [g3,d4,g4] g1 [f3,c4,f4]", // G G5 G G5 F5
  S: "g2 g1 g2 ~ [g2,d3] g1 [d3,g3] ~ d4 ~ [g1,g2]!3 [g3,d4,g4] g1 [f3,c4,f4]", // G5 G G5 F5
  T: "[g1,g2] ~ [g1,g2] [g3,d4] [g1,g2] g2 [g3,d4] [g1,g2]!2 ~ g2 ~ [g1,g2] [g3,d4,g4] g1 [f3,c4,f4]", // G G5 G G5 G G5 F5
  U: "f1 [f1,f2] f1 f2 [f1,f2] ~ [f3,c4] [f2,c3] [f1,f2] ~ [f1,f2]!3 [bb3,f4,bb4]@2 ~", // F F5 F Bb5
  V: "f1 [f1,f2] f1 f2 [f1,f2] ~ [f3,c4] [f2,c3] [f1,f2] ~ f1 [f1,f2]!2 [bb3,f4,bb4]@2 ~", // F F5 F Bb5
  W: "[g1,g2] ~ [g1,g2] [g3,d4] g2!2 [g3,d4] ~ [g1,g2] ~ g2 ~ [g1,g2] [g3,d4,g4] g1 [f3,c4,f4]", // G G5 G G5 F5
  X: "f1 [f1,f2] f1 ~ f2 ~ [f3,c4] c3 f2 ~@2 [f1,f2]!2 [bb3,f4]@2 ~", Y: "f1 [f1,f2] f1 ~@13",
})).s("gm_harpsichord").gain(0.48)

// other · harpsichord · soft notes
const harpsichord_soft = note("<~@47 A ~@18 B ~ C ~ B ~@17 D ~ E ~ E ~ E ~ E F G H G I>".pickRestart({
  A: "~@15 bb4", B: "~ g1 ~@2 g1 ~@2 d2 ~@8", C: "~@3 c2 ~@3 d2 g3 ~@7", D: "~@11 [g1,g2] ~@4",
  E: "~ [g1,g2] ~@9 [g1,g2] ~@4", F: "~@10 f2 ~@5", G: "~ [g1,g2] ~@2 g1 ~@2 [g1,g2] ~@3 [g1,g2] ~@4",
  H: "~@3 f2 f1 ~@2 f2 f1 ~ [f1,f2] ~@2 bb4@2 ~", I: "~@3 f2 [f1,f2] ~ [f3,c4] [f2,c3] [f1,f2] ~@7",
})).s("gm_harpsichord").gain(0.27)

// bass · synth bass 2
const bass = note(`<
  ~@8 A B A B A B C B A B A B A B C B A B A B A B A B A B A B A B C B A B A B A B A B A B A B A B C B A B A B A B C B A
  B A B A B A B A B A B A B A B A B A B A B C B A B A B A B A B A B A B A D
>`.pickRestart({
  A: "g2 ~ g2!3 ~ g2!3 ~ g2!3 ~ g2 ~", B: "f2 ~ f2!3 ~ f2!3 ~ f2!3 ~ f2 ~", C: "g2 ~ g2!3 ~ g2 ~ a2 ~ a2!3 ~ a2 ~",
  D: "f2 ~ f2!3 ~ f2!3 ~@7",
})).s("gm_synth_bass_2").gain(0.68)

// bass · clavinet
const bass_2 = note("<~@24 A B A C A B A C ~@8 A B A C A B A C ~@8 D ~@7 A B A C A B A C ~@30>".pickRestart({
  A: "g2 g1!4 ~ g2 ~ g1 ~ g1!3 ~ g1!2", B: "f2 f1!4 ~ f2 f1!2 ~ f1!3 f2@3", C: "f2 f1!4 ~ f2 f1 f2!4 f1 f2@3",
  D: "g2 g2@2 ~@13",
})).s("gm_clavinet").gain(0.25)

// chords · synth brass 1
const synth_brass_1 = note(`<
  ~@25 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~ A ~ A ~@2
>`.pickRestart({
  A: "~@13 [bb3,f4,bb4]@3", // Bb5
})).s("gm_synth_brass_1").gain(0.21)

// other · harpsichord
const harpsichord_2 = note("<~@32 A B C B C B D E ~@8 F G ~@2 H G I J A B C B C B D E ~@38>".pickRestart({
  A: "g1!2 ~ [g1,g2] g1 ~ g1 ~ g1 ~@3 [g2,g3] ~@2 [f2,f3]", B: "~@12 f3 e3 d3 [f2,c3]",
  C: "g1!2 ~ [g1,g2] g1 ~@7 [g2,g3] ~@2 [f2,f3]", D: "g1!2 ~ [g1,g2] g1 ~ g1 ~ a1@8",
  E: "f2!2 ~@2 f2 ~@2 f2 ~@2 f2 ~@2 f2 ~@2", F: "~@2 [g1,g2] ~ g3 ~ g4 ~ g4 ~ f3 g4 ~ g4 ~ f4",
  G: "~ f1 ~@6, ~ f2@3 ~@12", H: "~ g2@2 g3 g4 ~ g4 ~ g4 ~ f3 g4 ~ g4 ~ f4", I: "~@3 g3 ~@2 [g2,g3] ~@8 [e3,a3]",
  J: "~ f2 ~@2 f2 ~@2 f2 ~@2 f2 ~ f3 [f2,e3] d3 [f2,c3]", // Fmaj7 F5
})).s("gm_harpsichord").gain(0.52).pan(0.4)

// other · harpsichord · soft notes
const harpsichord_soft_2 = note("<~@32 A B C D C D ~@14 E ~ F G A B C D C D ~@40>".pickRestart({
  A: "~@11 g1 ~@4", B: "~@11 [f2,c3] ~@4", C: "~@6 g1 ~ g1 ~@2 g1 ~@4", D: "~@6 f1 ~ f1 ~@2 [f2,c3] ~@4",
  E: "~ g1 ~@5 g3 ~@8", F: "~ [g1,g2]@2 g2 [g1,g2]@2 ~@2 [e4,a4,db5]@7 ~", G: "f2 ~@15",
})).s("gm_harpsichord").gain(0.33).pan(0.4)

// other · lead 2 sawtooth
const lead_2_sawtooth = note("<~@48 A B ~@2 C B D E ~@46>".pickRestart({
  A: "~@2 [g1,g2] ~ g3 ~ g4 ~ g4 ~ f3 g4 ~ g4 ~ f4", B: "~ f1 ~@6, ~ f2@3 ~@12",
  C: "~ g2@2 g3 g4 ~ g4 g3 g4 ~ f3 g4 ~ g4 ~ f4, ~ g1 ~@14",
  D: "~ [g1,g2]@2 [g2,g3] [g1,g2]@2 [g2,g3] ~ [e4,a4,db5]@7 [e3,a3]", E: "~@12 f3 [f2,e3] d3 [f2,c3]",
})).s("gm_lead_2_sawtooth").gain(0.19).pan(0.4)

// chords · electric guitar clean · G
const electric_guitar_clean = note("<~@32 [~@13 [d4,g4,b4] ~@2] ~@69>")
  .s("gm_electric_guitar_clean").gain(0.36).pan(0.6)

// other · pad bowed
const pad_bowed = note("<~@72 A@2 B C D@2 ~ E@2 F G ~ H@2 I J K@3 ~@3 L@3 ~ M@2 ~@2>".pickRestart({
  A: "[~@4 f4@4 g4@6 d5@5 c5@6 ~@7]/2", B: "~@5 f4 g4@2", C: "d5@3 c5@8 a4@5", D: "[f4@4 ~ g4@2 d5@2 c5@2 f5@2 ~@3]/2",
  E: "[~ f4 g4@2 d5@3 c5@3 g5@9 ~@13]/2", F: "~@7 a5, ~@6 a5 ~, ~@13 f5@2 ~", G: "~@2 g5@9 ~@5",
  H: "[~@4 f4@3 g4@3 d5@4 c5@10 ~@8]/2", I: "~@5 f4 ~ f4", J: "~@7 f4", K: "[g4@2 d5@2 c5@2 g5@2 f5@4 a5@33 ~@3]/3",
  L: "[g6@31 ~ d6@4 a5 ~@11, ~@31 [f6,gb6]@2 ~@15, ~@16 e6 ~@7, ~@32 eb6 ~@15]/3", // Gbmaj7
  M: "[g4 g4@2 d5@2 c5@3 f5@4 g5@3 d5@6 ~@11]/2",
})).s("gm_pad_bowed").gain(0.2)

// chords · harpsichord · G5 F5
const harpsichord_3 = note(`<
  ~@49
  [~@13 [d2,g2] ~ [d2,g2]]
  [~ [d1,g1]@2 ~ [d3,g3] ~ [d3,g3] ~ [d4,g4] ~ [d2,g2] [g2,d3] ~ [d4,g4] ~ [c3,f3]]
  [~ [c2,f2] ~@2 f3 ~@11]
  ~@50
>`).s("gm_harpsichord").gain(0.46)

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~ A B C D E F G ~@94>".pickRestart({
  A: "~@8 f3 ~@3 c4 bb3 g3 f3", B: "d3 ~ f3 d3 g3 ~ d3 ~ f3 d3 g3 d3!3 f3 d3",
  C: "d3!2 f3 d3 g3 d3!3 f3 d3 f3 d3 c4 bb3 g3 f3", D: "d3!2 f3 d3 g3 d3!3 f3 d3 g3 d3!3 f3 d3",
  E: "d3!2 f3 d3 g3 d3!3 f3 d3 g3 d3 c4 bb3 g3 f3", F: "d3!2 f3 d3 g3 d3!3 f3 d3 f3 d3 g3 d3!3",
  G: "f3 d3 f3 d3 g3 d3!3 f3 d3 f3 d3 c4 bb3 g3 f3",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.2)

// other · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  [d3!2 f3 d3 g3 d3!3 f3 d3 g3 d3!3 f3 d3]
  [d3!2 f3 d3 g3 d3!3 ~ d3 g3 d3 ~@4]
  [~ d3 ~@3 d3 ~ d3 ~@8]
  ~@99
>`).s("gm_acoustic_guitar_steel").gain(0.06).pan(0.2)

// chords · epiano1
const epiano1 = note("<~@3 A@5 ~@94>".pickRestart({
  A: "[~@14 d5@23 ~@9 d5@25 ~@9, ~@5 f4@14 ~@2 f4@15 ~@4, ~@13 g4@26 ~@5 g4@27 ~@9]/5",
})).s("gm_epiano1").gain(0.18)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  ~@8 A B C B A B D B A B C B A B D B ~@8 E B C B A B D B ~@14 F ~ G H G H G H I H ~@16 J K J K J K L K J K J K J K J K
  J K J K J M
>`.pickRestart({
  A: "[b3,d4,g4]!2 ~@10 [b3,d4,g4]!2 ~@2", B: "[a3,c4,f4]!2 ~@14",
  C: "[b3,d4,g4]!2 ~@6 [b3,d4,g4]!2 ~@2 [b3,d4,g4]!2 ~@2", D: "[b3,d4,g4]!2 ~@6 [a3,db4,e4,a4]!8",
  E: "[b3,d4,g4]!2 ~@10 [b3,d4,g4] ~@3", F: "~@8 [a3,db4,e4,a4]!8", G: "[b3,d4,g4]!16",
  H: "[a3,c4,f4]!9 [c3,f3,a3] [a3,c4,f4]!3 ~ [a3,c4,f4] ~", I: "[b3,d4,g4]!8 [a3,b3,db4,e4,a4] [a3,db4,e4,a4]!7",
  J: "[b3,d4,g4]!2 [g3,b3,d4]!2 [b3,d4,g4] ~ [g3,b3,d4]!3 [b3,d4,g4] [g3,b3,d4]!2 [b3,d4,g4] [g3,b3,d4] [b3,d4,g4] [g3,b3,d4]", // G
  K: "[a3,c4,f4]!2 [f3,a3,c4]!2 [a3,c4,f4] ~ [f3,a3,c4]!3 [a3,c4,f4] [f3,a3,c4]!2 [a3,c4,f4] [f3,a3,c4] [a3,c4,f4] [f3,a3,c4]", // F
  L: "[b3,d4,g4]!2 [g3,b3,d4]!2 [b3,d4,g4] ~ [g3,b3,d4] [b3,d4,g4] [a3,db4,e4,a4]!8", // G A
  M: "[a3,c4,f4]!2 [f3,a3,c4]!2 [a3,c4,f4] ~ [f3,a3,c4]!3 [a3,c4,f4] f3 ~@5", // F
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~@8 A@15 B A@15 B A@7 B A@15 B A@37 C>".pickRestart({
  A: "x!2 ~ x!3 ~ x", B: "x!2 ~ x!5", C: "x!2 ~@6",
})).gain(0.42)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A@3 B A@11 B A B A C A B A C A@7 D A@7 B A@26 E@3 B A@3 B E F E A@16 G
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2", C: "~@4 x ~@6 x!2 ~ x ~", D: "~@4 x ~@3 x!8", E: "x!2 ~ x", F: "x ~ x ~@3 x!2",
  G: "~ x ~@2",
})).gain(0.54)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@5 A ~ A ~ A ~@5 A ~@3 A ~@3 B ~@7 A ~ A ~ A ~@3 C ~ A ~ A ~@3 D E ~@6 F ~ A ~ A ~ A ~@3 A ~@3 A ~ A ~ A G A H ~ I G
  J G H A ~ K ~@3 A ~ A ~@10
>`.pickRestart({
  A: "~@7 x", B: "~@12 x!3 ~", C: "~@11 x ~@4", D: "~@9 x!2 ~ x ~ x ~", E: "x", F: "~@9 x ~ x!4 ~", G: "~@13 x!2 ~",
  H: "~@9 x ~@4 x ~", I: "~@6 x!2", J: "~@2 x ~@4 x", K: "~@10 x!2 ~@2 x ~",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@8 A@3 B A C@2 A@4 B A@3 D A@3 B A@3 B A@3 B A@7 B A@3 D E@3 F E D E D G B A H A B A D A B A B A@3 B E D E@15 D E@3 D
  E D E@3 B I J
>`.pickRestart({
  A: "x!3 ~ x ~ x!2", B: "x!3 ~ x ~ x ~", C: "x ~ x ~ x ~ x!2", D: "x!7 ~", E: "x!8",
  F: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2", G: "x!3 ~ x!4", H: "x!3 ~ x!3 ~", I: "x!4", J: "x!2 ~@2",
})).gain(0.36)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@8 A@5 B@2 C A D@3 A D E ~ A@5 E A@2 D A@2 F A D A C A@5 E A ~@9 D A@2 D A@3 G A@2 D A@2 E A@2 ~@27 H I J
>`.pickRestart({
  A: "~ x ~@4 x ~@3 x ~@5", B: "~ x ~@2 x ~ x ~@3 x ~@5", C: "~ x ~@4 x ~@2 x ~@6", D: "~ x ~@4 x ~@9",
  E: "~@3 x ~ x ~@2", F: "~ x ~@4 x ~@5 x ~@3", G: "~ x ~@14", H: "~@3 x ~ x ~ x", I: "~ x ~ x ~ x ~ x", J: "~ x ~@6",
})).gain(0.24)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@7 A ~@7 B ~@7 C ~@7 B ~@7 D ~@7 E F G H I J K ~ L ~ M ~ M ~ M ~ N ~@3 O ~@3 P Q R S T U V W X Y Z U AA AB AC ~ AD ~
  AE AF AG ~ AH AI AJ ~ AH AK AL ~@2
>`.pickRestart({
  A: "~@7 x ~ x ~ x!2 ~@3", B: "~@3 x", C: "x ~@4 x ~ x!5 ~@4", D: "~@7 x ~@8", E: "~@3 x!2 ~@2 x ~@8",
  F: "~@2 x ~@3 x ~ x ~ x!2 ~ x!2 ~", G: "~@3 x ~@10 x ~", H: "~@6 x ~ x ~ x!2 ~ x!2 ~", I: "~ x ~@5 x",
  J: "~@6 x ~@3 x!2 ~@2 x ~", K: "~@3 x!4 ~@7 x ~", L: "x ~@2 x ~@6 x ~@5", M: "~@11 x ~@4", N: "~@3 x ~ x!3",
  O: "~@11 x!2 ~ x ~", P: "~@3 x!3 ~ x ~ x!2 ~ x ~@3", Q: "~@6 x!2", R: "x ~@3 x ~@3 x ~ x ~@2 x ~@2",
  S: "~@9 x ~@2 x ~@3", T: "~@9 x!3 ~@4", U: "~@12 x!2 ~@2", V: "~@9 x ~@2 x!3 ~", W: "~@9 x ~ x ~@4",
  X: "x ~ x ~ x!2 ~ x!3 ~ x!2 ~ x ~", Y: "x ~@8 x ~@2 x ~@3", Z: "x ~@3 x ~@4 x ~@2 x ~@3", AA: "x ~@4 x ~ x ~ x!5 ~@2",
  AB: "x ~@3 x ~@6 x!2 ~@3", AC: "~@7 x!2 ~@3 x ~@3", AD: "~ x!4 ~@11", AE: "~@4 x!2 ~@6 x!2 ~@2", AF: "~@5 x ~@10",
  AG: "x ~@2 x ~@3 x ~@3 x ~@3 x", AH: "x ~@2 x!2 ~@2 x ~@3 x!2 ~@2 x", AI: "~@4 x ~ x!2 ~@3 x ~@4",
  AJ: "x!2 ~@2 x ~@11", AK: "~@4 x ~@2 x ~@8", AL: "x!2 ~@2",
})).gain(0.3)

// … 40 more lines

More by Talking Heads