Strudelify
(You Gotta) Fight for Your Right cover art

1986 · Licensed To Ill

(You Gotta) Fight for Your Right

Beastie Boys

KeyG♯ minorTempo140 bpm
0:00/0:00
// (You Gotta) Fight for Your Right — Beastie Boys
// 140 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 110 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
  A@8 B@2 C D@3 C D@3 C D@3 C E@2 ~ F G@5 C D@3 C D@3 C D@3 C E@2 ~ F G@5 H@8 I@4 C D@3 C D@3 C D@3 C E@2 ~ F J@5 F G@5
  H@8 K@4 L@4
>`.pickRestart({
  A: "[[d#2,a#2,d#3] [g#2,d#3,g#3]@14 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]]/8", // D#5 G#5 B5 C#5 G#5 B5 C#5 G#5 …
  B: "[~ [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]]/2", // G#5 B5 C#5 G#5 B5 C#5 G#5
  C: "[g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~", // G#5
  D: "[[g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3]@4 [g#2,d#3,g#3]@2 [b2,f#3,b3]@4 [c#3,g#3,c#4]@6 [g#2,d#3,g#3]@4 [g#2,d#3,g#3]@2 [b2,f#3,b3]@4 [c#3,g#3,c#4]@8]/3", // G#5 B5 C#5 G#5 B5 C#5
  E: "[[g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3]@4 [g#2,d#3,g#3]@2 [b2,f#3,b3]@4 [c#3,g#3,c#4]@6 [g#2,d#3,g#3]@2]/2", // G#5 B5 C#5 G#5
  F: "~@2 [c#3,g#3,c#4] ~ [c#3,g#3,c#4] ~@3", // C#5
  G: "[~@4 [c#3,g#3,c#4] ~@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]]/5", // C#5 G#5 B5 C#5 G#5 B5 C#5 G#5 …
  H: "[[d#2,a#2,d#3]!7 [f#2,c#3,f#3]@2 [d#2,a#2,d#3]!6 [f#2,c#3,f#3]@2 [d#2,a#2,d#3]!6 [f#2,c#3,f#3]@2 [d#2,a#2,d#3]!6 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]]/8", // D#5 F#5 D#5 F#5 D#5 F#5 D#5 G#5 …
  I: "[[d#2,a#2,d#3] [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]]/4", // D#5 G#5 B5 C#5 G#5 B5 C#5 G#5 …
  J: "[~@4 [c#3,g#3,c#4] ~@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4] ~@3]/5", // C#5 G#5 B5 C#5 G#5 B5 C#5 G#5 …
  K: "[~ [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]@2 [g#2,d#3,g#3] [b2,f#3,b3]@2 [c#3,g#3,c#4]@3 [g#2,d#3,g#3]]/4", // G#5 B5 C#5 G#5 B5 C#5 G#5 B5 …
  L: "[g#2,d#3,g#3]/4", // G#5
})).s("gm_overdriven_guitar").gain(0.57)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A@8 B C D@3 C D@3 C D@3 C E@2 ~ F G@5 C D@3 C D@3 C D@3 C E@2 ~ F G@5 H@8 I@4 C D@3 C D@3 C D@3 C E@2 ~ F J@5 F G@5
  H@8 K@4 L@4
>`.pickRestart({
  A: "[~@7 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1]/8",
  B: "~ g#1 b1@2 c#2@3 g#1", C: "g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~",
  D: "[g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1@4 g#1@2 b1@4 c#2@6 g#1@4 g#1@2 b1@4 c#2@8]/3",
  E: "[g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1@4 g#1@2 b1@4 c#2@6 g#1@2]/2", F: "~@2 c#2 ~ c#2 ~@3",
  G: "[~@4 c#2 ~@2 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1]/5",
  H: "[d#1!7 f#1@2 d#1!6 f#1@2 d#1!6 f#1@2 d#1!6 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1]/8",
  I: "[d#1 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1]/4",
  J: "[~@4 c#2 ~@2 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2 ~@3]/5",
  K: "[~ g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1@2 g#1 b1@2 c#2@3 g#1]/4", L: "g#1/4",
})).s("gm_electric_bass_finger").gain(0.57)

// other · piano
const piano = note("<~@58 A@4 B C@2 D ~@44>".pickRestart({
  A: "[g#3@4 g#3@3 f#3@2 b2 c#3 d#3 d#3@3 g#3@8 g#2@9]/4", B: "g#2 b2 c#3 b2 c#3 d#3 g#3 f#3",
  C: "[g#3@7 g#3@2 f#3 d#3 c#3 d#3 c#3 b2 g#2]/2", D: "b2 g#2 f#2 g#2@5",
})).s("gm_piano").gain(0.64)

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

// drums · snare
const snare = s("sd").struct("<~ A B@23 ~@2 C B@19 ~@2 C B@7 D B@23 ~@2 C B@3 E ~ C B@7 D B@8 ~@4>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@8 x ~ x ~ x!4", D: "~@2 x!6", E: "~ x ~@2",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@10 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@8 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@20 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@30
>`.pickRestart({
  A: "x!4",
})).gain(0.64)

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

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@2 A B@3 A B@3 ~@2 A B ~@2 A B ~@2 A B ~@2 A C ~@2 A B@3 ~@2 A B ~@2 A B ~@2 A B ~@2 A C ~@2 A B@3 A B@3 D@8 ~@2 A B
  ~@2 A B ~@2 A B ~@2 A C ~@2 A B@2 E ~@2 A B@3 A B@3 A B@3 A B@3 ~@4
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x", D: "~ x ~ x", E: "x!3 ~",
})).gain(0.64)

stack(overdriven_guitar, bass, piano, kick, snare, hihat, crash, ride_bell)

More by Beastie Boys