Strudelify
Wild Wild Life cover art

1986 · True Stories

Wild Wild Life

Talking Heads

KeyB majorTempo137 bpm
0:00/0:00
// Wild Wild Life — Talking Heads
// 137 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 4 "High Guit" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 5 "Low Guita" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 6 "Guitar Li" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 7 "Lil' Guit" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 9 "Brass" named as a brass, played on brass section (its piano patch is not one); ch 11 "Saxes" named as a reed, played on alto sax (its piano patch is not one)
// note: Full arrangement: all 142 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(137/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.

// bass · electric bass finger · "Bass"
const bass = note(`<
  A@2 ~@6 B C B C B C B C B C B D E F G H G H I@2 B C B C B C B C B C B D E F G H G H I@2 B C B C E F G H G H I@2 J ~@5
  B C B D E F G H G H I@2 B C B C B C B K ~@4 B C B C B C B C B C B C B C B C E F G H G H I@2 B C B C B C B C B C B D E
  F G H G H I@2 B C B C B C B L
>`.pickRestart({
  A: "[~@2 c5@5 ~]/2", B: "b2@3 ~@3 b2@2 ~@2 a2@2 b2@4", C: "~@2 b2@2 d3@2 d#3@2 b2@2 ~@2 a2@2 b2 ~",
  D: "~ b2 d3 d#3 b2 ~ b2 ~", E: "e2 ~ e2@2 g#2@2 a2@2 b2 ~ b2@2 c#3@2 b2@2", F: "~@2 b2@3 ~ b2 ~ b2@3 ~ b2@4",
  G: "e2 ~ e2@2 g#2@2 a2@2 b2 ~ b2@2 c#3@2 b2@2, ~@12 b2 ~@3", H: "~@2 b2@3 ~ b2 ~ b2@3 ~ b2@3 ~",
  I: "[a2@3 ~ a2@3 ~ a2 ~ a2@3 ~ a2@4 e3@2 a3@2 e3@2 g#3@3 ~ e3@3 ~]/2", J: "b2", K: "b2 ~@5 b2@2 ~@8",
  L: "b2 ~@5 b2@3 ~@7",
})).s("gm_electric_bass_finger").gain(0.52)

// chords · rock organ · "Portable"
const rock_organ = note("<A@2 ~@106 B ~ C ~@31>".pickRestart({
  A: "[~@2 c5@5 ~]/2", B: "[e5,b5,d6,e6]@3 ~", C: "[e5,b5,d6,e6]@7 ~",
})).s("gm_rock_organ").gain(0.11)

// chords · electric guitar clean · "High Guit"
const electric_guitar_clean = note(`<
  A@2 ~@18 B ~ B ~ B ~@4 C ~ D ~@8 B ~ B ~ B ~@4 C ~ D ~@18 B ~ B ~ B ~@4 C ~ D ~ C ~ E F G H I F G H I F G H I F G H I
  F G H I B ~ B ~ B ~@4 C ~ D ~@8 B ~ B ~ B ~@4 C ~ D ~ C ~ J
>`.pickRestart({
  A: "[~@2 c4@5 ~]/2", B: "~@2 [e4,b4,e5]@2 ~@4 [e4,b4,e5]@5 ~ [e4,b4,e5]@2", C: "[b3,f#4,b4] ~@5 [b3,f#4,a4,b4]@2 ~@8",
  D: "[b3,f#4,b4] ~@5 [b3,f#4,b4]@2 ~@8", E: "[f#4,b4] ~@5 [f#4,b4]@2 ~@8",
  F: "[a3,e4]@2 ~@2 f#4@2 b3@4 b3 ~ [b3,f#4]@2 ~@2, ~ b3@2 f#4@3 ~@2", G: "~@2 [a3,e4] ~ [a3,e4] ~ [b3,f#4] ~",
  H: "[a3,e4]@2 ~@2 [b3,f#4]@2 f#4@5 ~ [b3,f#4]@2 [b3,f#4]@2", I: "~@2 [a3,e4] ~ [b3,f#4] ~@3",
  J: "[f#4,b4] ~@5 [f#4,b4] ~@9", // B5
})).s("gm_electric_guitar_clean").gain(0.12)

// chords · electric guitar clean · "High Guit" · soft notes
const electric_guitar_clean_2 = note("<~@86 A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~@37>".pickRestart({
  A: "~@2 f#4 ~@13", B: "~@2 [b3,f#4]@2 ~@6 b3 ~@5",
})).s("gm_electric_guitar_clean").gain(0.07)

// chords · electric guitar clean · "Low Guita"
const electric_guitar_clean_3 = note(`<
  A@2 ~@18 B C D E D C F G H I J K ~@8 B C D E D C F G H I J K B C D E D C F G H I ~@8 B C D E D C F G H I J K H I J L
  ~@20 B C D E D C F G H I J K ~ L ~ L ~ M ~ L B C D E D C F G H I J K H I J L
>`.pickRestart({
  A: "[~@2 c4@5 ~]/2", B: "[e3,b3]@3 ~ [e3,b3] ~ [e3,b3] ~ [e3,b3]@2 [e3,b3]@4 [b2,f#3,b3]@2",
  C: "~@2 [b2,f#3,b3]@3 ~ [b2,f#3,b3] ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~", // B5
  D: "[e3,b3]@4 [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3]@4 [b2,f#3,b3]@2", // E5 B5
  E: "~@2 [b2,f#3,b3]@3 ~ [b2,f#3,b3] ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~, ~@2 c#3 ~@13", // B5
  F: "[a2,e3,a3]@4 [a2,e3,a3] ~ [a2,e3,a3]@2 [a2,e3,a3] ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@2", // A5
  G: "~@2 [a2,e3,a3]@3 ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3]@5 ~", H: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~",
  I: "~ [b2,f#3,b3] ~@2 [b2,f#3,b3] ~ [b2,f#3,b3] ~", J: "[b2,f#3,b3]@7 ~ [b2,f#3,b3]@7 ~",
  K: "~ f#3 [b2,f#3,b3]@2 ~@4 [b2,f#3,b3]@2 ~@2 [b2,f#3,b3]@2 ~@2", L: "[b2,f#3,b3] ~@2 [b2,f#3,b3] ~@4",
  M: "[b2,f#3,b3]@2 ~@4 [b2,f#3,b3] ~@9", // B5
})).s("gm_electric_guitar_clean").gain(0.29)

// chords · electric guitar clean · "Lil' Guit"
const electric_guitar_clean_4 = note("<A@2 ~@49 B C D@2 E@2 F G@2 H@2 ~@80>".pickRestart({
  A: "[~@2 c5@5 ~]/2", B: "~@7 g5", C: "~@2 e6@9 ~ [g#5,e6]@3 ~, g#5@11 ~@5",
  D: "[~@2 [b4,f#5]@2 ~@12 g#5@2 ~@2 g5@2 ~@2 e6@4 [g#5,e6]@3 ~, ~@7 g5@2 e6@2 g#5@3 ~@2]/2", // B5 C#m
  E: "[~@2 [b4,f#5]@2 ~@16 g5@2 ~@2 e6@3 ~ [g#5,e6]@3 ~, ~@14 g5@4 e6@5 ~@9, ~@16 g#5@4 ~@2 g#5@5 ~@5]/2", // B5 C#m
  F: "~@2 [b4,f#5]@3 ~@11", G: "[[a4,e5,a5]@11 ~ [a4,e5,a5] ~ [a4,e5,a5] ~]/2", H: "[[b4,f#5,b5]@7 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.55)

// chords · lead 1 square · "Synth Lin"
const lead_1_square = note("<A@2 ~@7 B@3 ~@21 C D@2 E@2 F@2 ~@52 E@2 G@4 H@4 ~@40>".pickRestart({
  A: "[~@2 c4@5 ~]/2", B: "[~@3 [a4,d5]@8 ~]/3", C: "~ [e4,g#4]", D: "[f#4,a4]/2", E: "[[d#4,f#4]@3 [e4,g#4]]/2",
  F: "[[f#4,a4]@3 [f#4,b4]@5]/2", G: "[f#4,a4]/4", H: "[[d#4,f#4]@61 ~@3]/4",
})).s("gm_lead_1_square").gain(0.41)

// chords · brass section · "Brass"
const brass_section = note(`<
  A@2 ~@27 B ~ B ~@17 B ~@3 C ~ D ~ E F G H@2 ~@17 B ~ B ~ B ~ B ~@29 B ~ B ~@17 B ~ B ~ B ~ B
>`.pickRestart({
  A: "[~@2 c5@5 ~]/2", B: "[b5,f#6,b6] ~@5 [b5,f#6,b6] ~@9",
  C: "~@2 [b5,b6] ~@3 [g#5,g#6]@2 [b5,b6]@2 [b5,b6]@2 g#6@2 ~@2, ~@12 g#5 ~@3", // B G# B
  D: "~@2 [b5,b6] ~ [b5,b6]@2 [g#5,g#6] ~ [b5,b6]@4 [d6,d7]@2 [d#6,d#7] ~", // B G# B D D#
  E: "~ [b5,b6] ~ [g#5,g#6] [b5,b6] b6 g#6 ~, ~@10 b5 ~ g#5 ~@3", F: "[a5,a6]@2 [a5,a6] ~@5 [a5,a6]@2 [a5,a6] ~@5",
  G: "[a5,a6]@2 [a5,a6] ~@5 [a5,a6]@2 [b5,b6] ~ [c#6,c#7]@2 [e6,e7] ~", H: "[[b5,b6]@7 ~]/2",
})).s("gm_brass_section").gain(0.29)

// other · alto sax · "Saxes"
const alto_sax = note(`<
  A@2 ~@27 B C D ~@17 B C D ~ E ~ F ~ G H I J@2 ~@17 B C K C K C D ~@29 B C D ~@17 B C K C K C D
>`.pickRestart({
  A: "[~@2 c5@5 ~]/2", B: "~@7 a#3", C: "b3@15 ~", D: "b3 ~@2 b3 ~@4",
  E: "~@2 [b4,b5] ~@3 [g#4,g#5]@2 [b4,b5]@2 [b4,b5]@2 g#5@2 ~@2, ~@12 g#4 ~@3", // B G# B
  F: "~@2 [b4,b5] ~ [b4,b5]@2 [g#4,g#5] ~ [b4,b5]@4 [d5,d6]@2 [d#5,d#6] ~", // B G# B D D#
  G: "~ [b4,b5] ~ [g#4,g#5] [b4,b5] b5 g#5 ~, ~@10 b4 ~ g#4 ~@3", H: "[a4,a5]@2 [a4,a5] ~@5 [a4,a5]@2 [a4,a5] ~@5",
  I: "[a4,a5]@2 [a4,a5] ~@5 [a4,a5]@2 [b4,b5] ~ [c#5,c#6]@2 [e5,e6] ~", J: "[[b4,f#5,b5]@7 ~]/2",
  K: "b3 ~@2 b3 ~@3 a#3",
})).s("gm_alto_sax").gain(0.41)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A C
>`.pickRestart({
  A: "x ~@2 x ~ x ~@2", B: "x!2 ~ x!2 ~@3", C: "~ x!3 ~@4",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@4 A@47 B A@17 C A@15 D A@19 B A@19 E A@15 D>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!3", C: "x ~@5 x ~@5 x ~ x!2", D: "x ~@2 x ~@4", E: "~@4 x ~@5 x ~ x ~ x!2",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~@4 [~ x ~ x ~ x ~ x]!81 [~ x ~@6] [~ x ~ x ~ x ~ x]!55 [~ x ~@6]>").gain(0.16)

// drums · open hat
const open_hat = s("oh").struct("<~@85 x ~@55 x>").gain(0.16)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~@15 A ~@3 A ~@15 A ~@3 A ~@7 A ~@3 A ~@13 A ~@3 A ~@10 B ~@10 A ~@5 A ~@3 A ~@3 A ~@3 A ~@11 A ~@3 A ~@10 B
>`.pickRestart({
  A: "x", B: "~@3 x ~@4",
})).gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@5 A ~ A ~ A ~ A ~@8 B@12 ~@8 B@20 ~@5 A ~@3 A B@15 C ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A B@12 ~@8 B@15 C
>`.pickRestart({
  A: "~@10 x!5 ~", B: "~ x ~ x", C: "x ~@2 x ~@4",
})).gain(0.72)

// drums · cowbell
const cowbell = s("cb").struct("<~@4 [x ~ x ~ x ~ x!2]!81 [x ~ x!2 ~@4] [x ~ x ~ x ~ x!2]!55 [x ~ x!2 ~@4]>").gain(0.24)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@2 [x!2] [x!3 ~ x ~@3] [x!4]!81 [x ~ x!2 ~@4] [x!4]!55 [x ~ x!2 ~@4]>")
  .gain(1.62)

stack(
  bass, rock_organ, electric_guitar_clean, electric_guitar_clean_2, electric_guitar_clean_3, electric_guitar_clean_4,
  lead_1_square, brass_section, alto_sax, kick, snare, hihat, open_hat, crash, tambourine, cowbell, cabasa
)

More by Talking Heads