Strudelify
Everywhere cover art

1987 · Tango In the Night

Everywhere

Fleetwood Mac

KeyE majorTempo117 bpm
0:00/0:00
// Everywhere — Fleetwood Mac
// 117 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 105 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(117/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@8 A B C D E F G D E H I D J K L M N O P Q R Q S T U V J W J X Y M J Z J M R AA AB AC R AD AB AE AF AG@2 AF AG AF AG
  AH AI AJ J AK AL X AM AN N O P Q R Q S T R AA AB AC R AD AB AE AO@2 AP AQ AP AQ AP AQ AP AQ AP AQ AP AQ AP AQ AP AQ AP
  AQ ~
>`.pickRestart({
  A: "e2@2 ~ e2 e2@2 f#2@2 b1@3 ~ b1@3 ~", B: "e2@2 ~ e2!2 ~ f#2@2 b1@6 ~@2", C: "e2@2 ~ e2 e2@2 f#2@2 b1@3 ~ b1@4",
  D: "c#2@2 ~ c#2 c#2@2 b1@2 a1@6 ~@2", E: "e2@2 ~ e2 e2@2 f#2@2 b1 ~ b1 ~ b1@3 ~", F: "e2@2 ~@2 e2@2 f#2@2 b1@5 ~@3",
  G: "e2@2 ~@2 e2@2 f#2@2 b1 ~ b1 ~ b1@4", H: "e2@3 ~ e2@2 f#2@2 b1@6 ~@2", I: "e2@3 ~ e2@2 f#2@2 b1 ~ b1 ~ b1@4",
  J: "e2@2 ~ e2!2 ~ f#2@2 b1 ~ b1 ~ b1@3 ~", K: "e2 ~ e2 f#2 b1@3 ~", L: "e2@3 ~ e2@2 f#2@2 b1 ~ b1 ~ b1@3 ~",
  M: "c#2@2 ~ c#2 c#2@2 b1@2 a1@7 ~", N: "b1@2 ~ b1@3 c#2@3 ~ c#2 ~ c#2@4", O: "a1@2 ~ a1@3 b1@5 ~ b1@4",
  P: "c#2@2 ~ c#2 ~@2 c#2@2 b1 ~ b1 ~ b1@4", Q: "a1@2 ~ a1@2 ~ a1@2 b1@7 ~", R: "b1@2 ~ b1@2 ~ b1@2 c#2@3 ~ c#2@4",
  S: "c#2@2 ~ c#2@2 ~ c#2@2 b1@3 ~ b1@4", T: "a1@4 ~@2 a1@4 ~@2 a1@4 b1@6 ~@2 b1@7 ~",
  U: "e2@2 ~ e2 e2@2 f#2 ~ b1 ~ b1 ~ b1@4", V: "e2@2 ~ e2 e2@2 f#2 ~ b1@6 ~@2", W: "c#2@2 ~ c#2!2 ~ b1@2 a1@7 ~",
  X: "e2@2 ~ e2!2 ~ f#2 ~ b1@7 ~", Y: "e2@2 ~ e2!2 ~ f#2 ~ b1 ~ b1 ~ b1@4", Z: "e2@2 ~ e2!2 ~ f#2 ~ b1@6 ~@2",
  AA: "a1@2 ~ a1@2 ~ a1@2 b1 ~ b1@6", AB: "c#2@2 ~ c#2@2 ~ c#2@2 b1 ~ b1 ~ b1@4", AC: "a1@2 ~ a1 ~@2 a1@2 b1@7 ~",
  AD: "a1@2 ~ a1 ~@2 a1@2 b1 ~ b1 ~ b1@4", AE: "a1@2 ~ a1 ~@2 a1@2 b1@6 ~ b1", AF: "a1@5 ~ a1 ~ a1@7 ~",
  AG: "a1@5 ~ a1 ~ a1@5 ~ a1 ~", AH: "a1@5 ~ a1 ~ a1@3 ~ a1@2 ~@2", AI: "e2@2 ~ e2 e2@2 f#2@2 b1 ~ b1 ~ b1@4",
  AJ: "e2@2 ~ e2!2 ~ f#2@2 b1@7 ~", AK: "c#2@2 ~ c#2 c#2@2 b1 ~ a1@7 ~", AL: "e2@2 ~@2 e2@2 f#2@2 b1 ~ b1 ~ b1@3 ~",
  AM: "e2@2 ~@2 e2@2 f#2@2 b1 ~ b1 ~ b1@2 ~@2", AN: "c#2@4 ~@2 c#2@2 c#2@2 ~@2 b1@2 ~@2 a1@15 ~", AO: "[e1@7 b1]/2",
  AP: "e1!8", AQ: "e1!6 b1@2",
})).s("gm_acoustic_bass").gain(0.48)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note("<~@84 A B A B A B A B A B A B A B A B A B A B ~>".pickRestart({
  A: "~@2 b3!2 ~@2 b3!2 ~@2 b3!2 ~@2 b3!2", B: "~@2 b3!2 ~@2 b3!2 ~@4 b3 ~@3",
})).s("gm_acoustic_bass").gain(0.32)

// chords · french horn · "FR.HORN"
const french_horn = note(`<
  A@8 ~@16 B C D E B F D E ~@12 B C D E B F D E A@8 ~@8 B C D E B F D E B C D E B F D E ~@21
>`.pickRestart({
  A: "[[c#5,e5] [b4,d#5] [e4,c#5] [b4,d#5] [c#5,e5] [b4,d#5] [e4,c#5] [b4,d#5] [c#5,e5] [b4,d#5] [e4,c#5] [b4,d#5] [c#5,e5] [b4,d#5] [c#5,e5]@2, a4]/8", // C#m B C#m B C#m B C#m B …
  B: "[f#4,b4,c#5,d#5]@2 ~ [f#4,b4,c#5,d#5]@2 ~ [g#4,c#5,e5]@2 ~@8", // B C#m
  C: "[a4,b4,c#5,e5]@2 ~ [a4,b4,c#5,e5]@2 ~ [f#4,b4,c#5,d#5]@2 ~@8", // A B
  D: "[g#4,c#5,e5]@2 ~ [g#4,c#5,e5]@2 ~ [f#4,b4,d#5]@2 ~@8", // C#m B
  E: "[e4,a4,b4,c#5]@2 ~ [e4,a4,b4,c#5]@2 ~ [f#4,b4,d#5]@2 ~@8", // A B
  F: "[a4,b4,c#5,e5]@2 ~ [a4,b4,c#5,e5]@2 ~ [f#4,b4,d#5]@2 ~@8", // A B
})).s("gm_french_horn").gain(0.4)

// other · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@8 A B A C D E D C D B F C D E F C G H I ~ G H I ~ D B D C D B D C D B D C G H I ~ G H I ~@9 D B D C F B D C G H I ~
  G H I ~ G H I ~ G H I ~@22
>`.pickRestart({
  A: "e4@3 ~@3 e4@2 e4 ~@3 f#4@3 ~ b3@3 ~@5 b3@3 ~@5", B: "e4@3 ~@3 e4@2 e4 ~@3 f#4@3 ~ b3@3 ~@13",
  C: "c#4@3 ~@3 c#4@2 c#4 ~@3 b3@3 ~ a3@3 ~@13", D: "e4@3 ~@3 e4@2 e4 ~@3 f#4@3 ~ b3@3 ~ b3@3 ~ b3@3 ~@5",
  E: "e4@3 ~@5 e4@3 ~ f#4@3 ~ b3@3 ~@13", F: "e4@3 ~@5 e4@3 ~ f#4@3 ~ b3@3 ~ b3@3 ~ b3@3 ~@5",
  G: "~@10 g#4 ~ g#4 ~ f#4 g#4", H: "c#4 ~@9 g#4 ~ g#4 ~ f#4 g#4", I: "c#4 ~@15",
})).s("gm_acoustic_guitar_nylon").gain(0.47)

// other · violin
const violin = note("<~@8 A@16 ~@8 A@8 B@4 ~@16 A@8 ~@37>".pickRestart({
  A: "b6/8", B: "b6/4",
})).s("gm_violin").gain(0.28)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<A@8 B@8 C@7 D E@8 B@8 F@3 D G@8 H@8 C@7 D I@8 J@7 K@6 L@4 M@8 N@4>".pickRestart({
  A: "[g#5@15 f#5@16 g#5@32 g#5@16 f#5@8 b5@8 g#5@32 g#5@16 f#5@16 g#5@32 g#5@16 f#5@8 b5@8 g#5@32 g#5]/8",
  B: "[~@15 a5@16 g#5@16 f#5@16 g#5@16 a5@16 g#5@16 f#5@16 g#5@16 a5@16 g#5@16 f#5@16 g#5@16 a5@16 g#5@16 f#5@16 g#5]/8",
  C: "[~@15 a5@16 g#5@16 f#5@16 g#5@16 a5@16 g#5@16 f#5@16 g#5@16 a5@16 g#5@16 f#5@16 g#5@16 a5@16 g#5]/7",
  D: "~@15 f#5@16 [b4,d#5,f#5]", // B
  E: "[~@11 g#5@20 [a4,b4]@9 ~@3 [d#5,f#5]@20 [c#5,e5,g#5]@12 [d#5,f#5]@20 [a4,c#5,e5]@12 [d#5,f#5]@32 g#5@19 ~ [a4,b4]@9 ~@3 [d#5,f#5]@20 [c#5,e5,g#5]@12 [b4,d#5,f#5]@19 ~ [c#5,e5]@12 [b4,d#5,f#5]@20 g#5, ~@11 e5@34 ~@94 e5@32 ~@85, ~@11 c#5@30 ~@2 b4@16 ~@16 b4@16 ~@16 b4@30 ~@2 c#5@29 ~@3 b4@15 ~@37 a4@10 ~@23]/8", // Asus2 D#m C#m D#m A D#m Asus2 D#m …
  F: "[~@15 a5@16 g#5@16 f#5@16 g#5@16 a5@16 g#5]/3",
  G: "[~@31 [a4,b4]@9 ~@3 [d#5,f#5]@20 [c#5,e5,g#5]@12 [d#5,f#5]@20 [c#5,e5]@12 [d#5,f#5]@32 g#5@19 ~ [a4,b4]@9 ~@3 [d#5,f#5]@20 [c#5,e5,g#5]@12 [b4,d#5,f#5]@19 ~ [c#5,e5]@12 [b4,d#5,f#5]@20 g#5, ~@11 c#5@30 ~@2 b4@16 ~@16 b4@16 ~@4 a4@11 ~ b4@29 ~@3 c#5@29 ~@3 b4@15 ~@37 a4@10 ~@23, ~@11 g#5@20 ~@225, ~@12 e5@33 ~@94 e5@32 ~@85]/8", // Asus2 D#m C#m D#m C#m D#m Asus2 D#m …
  H: "[~@15 f#5@16 g#5@32 g#5@16 f#5@8 b5@8 g#5@32 g#5@16 f#5@16 g#5@32 g#5@16 f#5@8 b5@8 g#5@32 g#5]/8",
  I: "[~@11 g#5@20 [a4,b4]@9 ~@3 [d#5,f#5]@20 [c#5,e5,g#5]@12 [d#5,f#5]@20 [c#5,e5]@12 [d#5,f#5]@32 g#5@19 ~ [a4,b4]@9 ~@3 [d#5,f#5]@20 [c#5,e5,g#5]@12 [b4,d#5,f#5]@19 ~ [c#5,e5]@12 [b4,d#5,f#5]@20 [b4,d#5,f#5], ~@11 e5@34 ~@94 e5@32 ~@85, ~@11 c#5@30 ~@2 b4@16 ~@16 b4@16 ~@4 a4@11 ~ b4@30 ~@2 c#5@29 ~@3 b4@15 ~@37 a4@10 ~@23]/8", // Asus2 D#m C#m D#m C#m D#m Asus2 D#m …
  J: "[~@11 g#5@20 [a4,b4]@9 ~@3 [d#5,f#5]@20 [c#5,e5,g#5]@12 [d#5,f#5]@20 [a4,c#5,e5]@12 [d#5,f#5]@32 g#5@19 ~ [a4,b4]@9 ~@3 [d#5,f#5]@20 [c#5,e5,g#5]@12 [b4,d#5,f#5]@19 ~ [a4,c#5,e5], ~@11 e5@34 ~@94 e5@32 ~@53, ~@11 c#5@30 ~@2 b4@16 ~@16 b4@16 ~@16 b4@30 ~@2 c#5@29 ~@3 b4@15 ~@38]/7", // Asus2 D#m C#m D#m A D#m Asus2 D#m …
  K: "[~@11 [b4,d#5,f#5]@20 g#4@16 a4@16 g#4@16 [f#4,a4]@16 g#4@48 a4@16 g#4@33, ~@31 [e4,b4]@161]/6", // B F#m E5
  L: "[~@15 g#5@4 a5@4 b5@4 ~@4 g#4@46 d#5@2 c#5@4 d#5@4 e5@4 b4@4 [e4,g#4,b4]@33, ~@15 [f#4,a4]@16 e4@64 ~@33, ~@27 e5@52 a4@16 ~@33, ~@31 b4@60 ~@37]/4", // E F#m
  M: "[~@15 g#5@4 a5@4 b5@4 ~@48 d#5@2 ~@6 d#5@4 e5@4 b4@4 [g#4,b4]@48 g#5@4 a5@4 b5@4 ~@4 g#4@46 d#5@2 c#5@4 d#5@4 e5@4 b4@4 [e4,g#4,b4]@33, ~@15 [f#4,a4]@16 e4@64 e4@64 e4@64 ~@33, ~@27 e5@50 c#5@6 ~@72 e5@50 ~@51, ~@31 b4@60 ~@68 b4@60 ~@37, ~@31 g#4@48 a4@64 [f#4,a4]@12 ~@52 a4@16 ~@33]/8", // G#m E F#m
  N: "[~@15 c#5@4 d#5@4 e5@4 b4@4 [g#4,b4]@48 g#5@4 a5@4 b5@4 e5@30 ~@7, ~@15 [f#4,a4]@12 ~@4 e4@64 ~@33, ~@79 a4@16 ~@33]/4", // G#m F#m
})).s("gm_string_ensemble_1").gain(0.31)

// other · celesta
const celesta = note(`<
  [e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 c#5 ~ b4 g#4 f#4 ~ e4]!7
  [e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 ~@7]
  ~@44
  [e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 c#5 ~ b4 g#4 f#4 ~ e4 e5 c#5 ~ b4 g#4 f#4 ~ e4]!8
  [e5 ~@31]
  ~@44
>`).s("gm_celesta").gain(0.38)

// other · marimba
const marimba = note("<~@27 A@2 ~@2 B ~@15 A@2 ~@2 B ~@19 A@2 ~@2 B ~@3 A@2 ~@2 B ~@21>".pickRestart({
  A: "[~@4 d#5 e5@7 ~@4]/2", B: "~@8 d#5@2 e5@5 ~",
})).s("gm_marimba").gain(0.37)

// drums · kick
const kick = s("bd").struct("<~@8 A@32 B A@14 C A C A@6 B A@39 D>".pickRestart({
  A: "x!2", B: "~ x", C: "x ~ x!2", D: "x",
})).gain(0.72)

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

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

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

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@11 A ~@7 A ~@3 A ~@3 B ~@3 C ~ A ~@5 D ~@3 D ~@3 B ~@3 C ~ E ~ F ~ E ~ E ~@3 G ~@3 G ~ H ~ I ~ F ~ A ~ F ~ F ~ A ~ A
  ~@5 G ~ F ~ F ~ G ~ F ~ G ~@5
>`.pickRestart({
  A: "~@4 x!3 ~", B: "~@6 x!3 ~ x ~ x ~ x ~", C: "~@7 x", D: "~@7 x!2 ~@7", E: "~@6 x!2 ~@8", F: "~@4 x!4",
  G: "~@7 x ~@8", H: "~@5 x!2 ~", I: "~@8 x ~ x ~ x ~ x!2",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@7 A ~ B ~ B ~@3 B ~@17 B ~ B ~@11 C ~@4 B ~@20 C ~@5 C ~@3 D ~@21>".pickRestart({
  A: "~@3 x", B: "~@5 x ~@2", C: "~@15 x", D: "~@7 x",
})).gain(0.16)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@11 A ~@7 A ~@3 A ~@9 A ~@5 B ~@3 B ~@9 C ~@3 C ~ D ~@3 C ~@3 C ~@17 D ~ D ~ C ~@5 E ~@3 C ~ D ~ D ~
>`.pickRestart({
  A: "~@6 x!2 ~@8", B: "~@5 x!3", C: "~@4 x!4", D: "~@4 x!3 ~", E: "~@8 x ~ x ~ x ~ x!2",
})).gain(0.64)

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

// drums · ride
const ride = s("rd").struct("<~@9 A ~@23 A ~@20 B ~@3 B ~@26 C ~ C ~ C ~ C B ~@2 C ~ C ~ C ~ C ~@3>".pickRestart({
  A: "~@3 x", B: "~@7 x", C: "x",
})).gain(0.48)

// drums · bongos
const bongos = s("bongo:4").struct(`<
  ~@9 A ~@3 A ~@3 A ~@3 A ~@2 A ~@3 A ~@4 A ~@3 A ~@3 A ~@2 A ~@3 A ~@12 A ~@3 A ~@2 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3
  A ~@3 A ~@3 A ~@2
>`.pickRestart({
  A: "~@7 x",
})).gain(1.47)

// drums · congas
const congas = s("conga:13").struct(`<
  ~@9 A ~@3 A ~@3 A ~@3 A ~@2 A ~@3 A ~@4 A ~@3 A ~@3 A ~@2 A ~@3 A ~@12 A ~@3 A ~@2 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3
  A ~@3 A ~@3 A ~@2
>`.pickRestart({
  A: "~@3 x",
})).gain(1.79)

// drums · congas
const congas_2 = s("conga:33").struct(`<
  ~@9 A ~@3 A ~@3 A ~@3 A ~@2 A ~@3 A ~@4 A ~@3 A ~@3 A ~@2 A ~@3 A ~@12 A ~@3 A ~@2 A ~@3 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3
  A ~@3 A ~@3 A ~@2
>`.pickRestart({
  A: "~@5 x ~@2",
})).gain(1.79)

stack(
  bass, bass_soft, french_horn, acoustic_guitar_nylon, violin, string_ensemble_1, celesta, marimba, kick, snare,
  low_tom, hihat, mid_tom, open_hat, high_tom, crash, ride, bongos, congas, congas_2
)

More by Fleetwood Mac