Strudelify
And She Was cover art

1985 · Little Creatures

And She Was

Talking Heads

KeyE majorTempo126 bpm
0:00/0:00
// And She Was — Talking Heads
// 126 bpm, 4/4, key E major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(126/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 · electric guitar muted · "Guitar"
const electric_guitar_muted = note(`<
  ~ A B A B A B C B A B A B ~@16 A B A B A B C B A B A B ~@24 A B A B A B C B A B A B ~@39
>`.pickRestart({
  A: "e2 ~ e2@2 g#2@2 b2@2 a2 ~ a2@2 c#3@2 e3 ~", B: "e3 ~@15", C: "e2 ~ e2@2 g#2@2 b2 ~ a2 ~ a2@2 c#3@2 e3 ~",
})).s("gm_electric_guitar_muted").gain(0.41)

// other · vibraphone · "Keyboard"
const vibraphone = note(`<
  ~ A@12 B C D E F G H I J K J@5 L A@12 B C D E F G H I J K J@5 L M N O P M N O P Q A@11 R S T U V W X I J K J@5 L J K
  J@5 L J K J@5 L J K J@4 ~
>`.pickRestart({
  A: "e3 g#3 b3 g#3 a3 c#4 e4 c#4", B: "a#4@2 f4@2 c4@2 a#4 ~ a4@2 f4@2 c4@2 a4 ~",
  C: "g4@2 e4@2 c4@2 g4 ~ a4@2 f4@2 c4@2 a4 ~", D: "a#4@2 f4@2 c4@2 a#4 ~ g4@2 e4@2 c4@2 g4 ~",
  E: "a4@2 f4@2 c4@2 g4 ~ a4@2 f4@2 c4@2 a4 ~", F: "a#4@2 f4@2 c4@2 a#4 ~@3 f4@2 c4@2 a4 ~, ~@2 a4 ~",
  G: "~@2 e4@2 c4 ~ g4 ~ a4@2 f4@2 c4@2 a4 ~, g4 ~@3", H: "a#4@2 a4@2 g4@2 a#4 ~ b4@2 a4@2 g4@2 b4 ~", I: "c5 ~@7",
  J: "e3 g#3 e4 g#3 a3 b3 ~ b3, ~@3 e4", K: "e3 g#3 e4 g#3 ~ b3 ~ b3, ~@2 a3 e4", L: "~ g#3 e4 g#3 a3 b3 e4 b3",
  M: "b3 a#3 b3 f#3 b3 a#3 b3 f#3", N: "b3 a#3 b3 f#3 b3 a#3 b3 a3", O: "g3 f#3 g3 d3 g3 f#3 g3 d3",
  P: "g3 f#3 g3 d3 g3 f#3 g3 a3", Q: "[e3,a#3] g#3 b3 g#3 a3 c#4 e4 c#4", R: "a#4 f4 c4 a#4 a4 f4 c4 a4",
  S: "g4 e4 c4 g4 a4 f4 c4 a4", T: "a#4 f4 c4 a#4 g4 e4 c4 g4", U: "a4 f4 c4 g4 a4 f4 c4 a4",
  V: "a#4 f4 c4 a#4 ~ f4 c4 a4, ~@2 a4 ~", W: "~ e4 c4 g4 a4 f4 c4 a4, g4 ~@3", X: "a#4 a4 g4 a#4 b4 a4 g4 b4",
})).s("gm_vibraphone").gain(0.41)

// bass · electric bass pick · "Bass"
const bass = note(`<
  ~ A B C D E D C D F D C D G H I@2 J K L@2 M N M N M N M N A B C D E D C D F D C D G H I@2 J K L@2 M N M N M N M N ~@8
  A B C D E D C D F D C D O P Q@2 R S T@2 M N M N M N M N M N M N M N M N M N M N M N M N M N M N M N ~
>`.pickRestart({
  A: "e1@2 ~@4 e1 ~ a1@2 ~@4 a1 ~", B: "e1 ~@7", C: "e1 ~@5 e1 ~ a1 ~@5 a1 ~", D: "e1 ~@15",
  E: "e1@2 ~@4 e1 ~ a1 ~@6 a1", F: "e1 ~@6 e1 a1 ~@5 a1 ~", G: "a#1@4 ~@2 c2 ~ f2@5 ~ c2@2",
  H: "~@2 c2@2 ~@2 f2 ~ f2@4 ~@4", I: "[a#1@4 ~@2 c2 ~ f2@3 ~ e2 ~ f2@6 ~@7 f2 ~ f1 ~@2]/2",
  J: "a#1@4 ~@2 c2 ~ f2@5 ~ e2@2", K: "~@2 e2@2 ~@2 f2 ~ f2@4 ~@4",
  L: "[g1@3 ~@3 [f1,g1] ~ g1 ~ g1@3 ~ c2@6 ~@2 c2@2 d2@2 ~@2 e2@2 ~@2]/2", M: "e1@2 ~ e1 a1@2 ~ a1",
  N: "d2@2 ~ d2 a1 ~ a1 ~", O: "a#1@2 ~ c2 f2@2 ~ c2", P: "~ c2 ~ f2 f2@2 ~@2",
  Q: "[a#1@2 ~ c2 f2 ~ e2 f2@3 ~@4 f2 f1]/2", R: "a#1@2 ~ c2 f2@2 ~ e2", S: "~ e2 ~ f2 f2@2 ~@2",
  T: "[g1 ~@2 [f1,g1] g1!2 ~ c2@3 ~ c2 d2 ~ e2 ~]/2", // Fsus2
})).s("gm_electric_bass_pick").gain(0.51)

// chords · piano
const piano = note(`<
  ~@13 A B C@2 A B D@2 E F E F E F E F ~@12 A B C@2 A B D@2 E F E F E F E F G ~ H ~ I ~ H ~@13 A B C@2 A B D@2 E F E F E
  F E F E F E F E F E F E F E F E F E F E F E F E F ~
>`.pickRestart({
  A: "[a#2,a#3]@2 ~ [c3,a3] [f3,a3]@2 ~ [e3,g3]", B: "~ [e3,g3] ~ [f3,a3] [f3,a3]@2 ~@2",
  C: "[[a#2,a#3]@2 ~ [c3,a3] [f3,a3]@2 [e3,g3] [f3,a3]@5 ~@2 f3 f2]/2", // A# F Em F
  D: "[g2@2 ~ g2!2 a#2@2 [c3,e3]@6 ~@3, ~@7 d3 ~@8]/2", E: "[e3,g#3,b3] ~@2 [e3,g#3,b3] [e3,a3,c#4] ~@2 [e3,b3,d4]",
  F: "~ [e3,b3,d4] ~ [e3,b3,d4] [e3,a3,c#4] ~ [e3,a3,c#4] ~", G: "~ [b3,d4,f#4]@2 ~@13", H: "[g3,b3,d4]@3 ~@13",
  I: "[b3,d4,f#4]@3 ~@13", // Bm
})).s("gm_piano").gain(0.46)

// other · viola · "Strings"
const viola = note("<~@57 A B C D E B C F G ~@50>".pickRestart({
  A: "b2@2 ~ a#2 b2@2 ~ a#2", B: "b2 ~ f#3 e3 d3 c#3 b2 a2", C: "g2@2 ~ f#2 g2@2 ~ f#2", D: "g2@2 ~ f#2 g2 ~ a2 ~",
  E: "b2@2 ~ d3 b2@2 ~ d3", F: "g2@2 ~ f#2 g2 ~ g2 ~", G: "a2 ~@7",
})).s("gm_viola").gain(0.46)

// other · trombone · "Horns"
const trombone = note("<~@85 A B C D E B A D F G H I A B ~ D A J K L A D H M K N O P H I ~>".pickRestart({
  A: "~@2 e4 ~@3 e4 ~", B: "~@2 e4 ~@2 e4 f#4 e4", C: "~@2 e4 ~@3 e4!2", D: "~@2 e4 ~ d4 c#4 d4 e4",
  E: "~@2 e4!2 ~@2 e4 ~", F: "~@2 e4!2 ~@2 e4!2", G: "~@2 e4!2 ~ e4 f#4 e4", H: "~@2 e4 ~ e4 ~ e4 ~",
  I: "e4 ~ e4 ~ d4 c#4 d4 e4", J: "~@2 e4 ~ f#4@2 ~ e4", K: "~@2 e4 ~ e4 ~@3", L: "e4 ~ e4 ~ d4 c#4 ~ e4",
  M: "~@2 e4 ~@2 e4 [f4,f#4] e4", N: "e4 ~@3 d4 c#4 d4 e4", O: "~@2 e4 ~ e4 ~@2 e4", P: "~@3 e4 ~ e4 f#4 e4",
})).s("gm_trombone").gain(0.51)

// chords · overdriven guitar · "Overdrive Gt."
const overdriven_guitar = note("<~@109 A B C B A D@2>".pickRestart({
  A: "~@2 [e4,g#4] ~ [e4,a4] ~@2 [a4,d5]", B: "~ [a4,d5] ~ [a4,d5] [a4,c#5] ~ [a4,c#5] ~",
  C: "~@2 [d4,e4,g#4] ~ [e4,a4] ~@2 [a4,d5]", D: "[~ [a4,d5] ~ [a4,d5] [a4,c#5] [a4,e5]!2 [a4,e5]@2 ~@7]/2",
})).s("gm_overdriven_guitar").gain(0.41)

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

// drums · snare
const snare = s("sd").struct(`<
  A B A B A B A B A B A B C B@3 A B@3 A@9 B A B A B A B A B A B A B@3 A B@3 A@17 B A B A B A B A B A B C B@3 A B@3 D A@8
  B@22 ~
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@12 x ~ x!2", D: "~@2 x ~ x!4",
})).gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@24 [~@3 x] ~@27 [~@3 x] ~@35 [~@3 x] ~@27>").gain(0.51)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B A B A B A B A B A B ~@16 A B A B A B A B A B A B ~@16 A@7 C A B A B A B A B A B A B ~@39
>`.pickRestart({
  A: "x!8", B: "x", C: "x!7 ~",
})).gain(0.46)

// drums · crash
const crash = s("cr").struct("<~@57 A B ~ B ~ B ~ B ~@20 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~ A ~ A ~@6 C ~>".pickRestart({
  A: "x", B: "~@3 x", C: "~@5 x!3",
})).gain(0.51)

// drums · ride
const ride = s("rd").struct("<~@24 A ~@3 A ~@23 A ~@3 A ~@31 A ~@3 A ~@15 B C D@4 E ~>".pickRestart({
  A: "~@3 x", B: "x!4", C: "x ~ x ~ x!4", D: "x!8", E: "x!7 ~",
})).gain(0.46)

// drums · tambourine
const tambourine = s("tb").struct(`<
  A ~ A ~ A ~ A ~ A ~ A ~ A ~@8 B@8 ~ A ~ A ~ A ~ A ~ A ~ A ~@8 B@8 ~@9 A ~ A ~ A ~ A ~ A ~ A ~@8 B@30 ~
>`.pickRestart({
  A: "~@3 x", B: "x!8",
})).gain(0.36)

// drums · cowbell
const cowbell = s("cb").struct("<~@21 [~ x ~ x]!8 ~@20 [~ x ~ x]!8 ~@28 [x!4]!24 x ~@6>").gain(0.46)

stack(
  electric_guitar_muted, vibraphone, bass, piano, viola, trombone, overdriven_guitar, kick, snare, low_tom, hihat,
  crash, ride, tambourine, cowbell
)

More by Talking Heads