Strudelify
Eye Of The Tiger cover art

1982 · Eye of the Tiger

Eye Of The Tiger

Survivor

KeyE♭ majorTempo108 bpm
0:00/0:00
// Eye Of The Tiger — Survivor
// 108 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "bass" named as a bass, played on electric bass finger (its piano patch is not one); ch 1 "muted gt" named as a guitar, played on electric guitar muted (its piano patch is not one); ch 5 "overd gt" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 6 "dist gt" named as a guitar, played on electric guitar clean (its piano patch is not one)
// note: duplicate parts dropped: ch 6 "dist gt" electric guitar clean (copy of ch 5 "overd gt" electric guitar clean)
// note: Full arrangement: all 111 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(108/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(`<
  ~@4 A B C@2 D E F@2 G@2 H@2 G@2 I@2 G J G@3 J G@3 J G K L J G K L M N O P Q P O R S G T G@3 J G@2 U V N O P Q P O R S
  G@3 J G@3 J G@2 U V N O P Q P O R W X G J Y Z AA@2 Z Y AB@2 Y Z AA@2 Z Y AB@2 Y Z AA@2 Z Y AC@2
>`.pickRestart({
  A: "c2@3 ~@5 c2@2 ~ bb1@2 ~ c2@2", B: "~@8 c2@2 ~ bb1@2 ~ c2@2", C: "[~@8 c2@2 ~ g1@2 ~ ab1@18]/2",
  D: "c2@2 ~@6 c2@2 ~ bb1@2 ~ c2@2", E: "~@10 c2@2 ~ bb1@2 ~", F: "[c2@2 ~@6 c2@2 ~ g1@2 ~ ab1@17 ~]/2",
  G: "c2 ~ c2 ~ c2 ~ c2 ~", H: "[c2@2 ~@2 c2@2 ~@2 c2@2 ~ g1@3 ab1@5 ~ ab1@2 ~@2 ab1@3 ~ ab1@2 ~@2]/2",
  I: "[c2@2 ~@2 c2@2 ~@2 c2@2 ~ g1@2 ~ ab1@4 ~@2 ab1@2 ~@2 ab1@2 ~@2 ab1@3 ~]/2",
  J: "c2@2 ~@2 c2@2 ~@2 c2@2 ~ g1 bb1 g1 bb1@2", K: "ab1 ~ ab1 ~ ab1 ~ ab1 ~", L: "bb1 ~ bb1 ~ bb1 ~ bb1 ~",
  M: "c2@2 ~@2 c2@2 ~@2 c2 ~ bb1@2 ~ c2@2 ~", N: "f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@3 ~",
  O: "g1@3 ~ g1@3 ~ bb1@3 ~ bb1@3 ~", P: "f1@3 ~ f1@3 ~ f1@3 ~ f1@3 ~", Q: "c2@4 bb1@7 ~ bb1@3 ~",
  R: "f2@3 e2@3 f2@2 g2@2 ~ f2@3 g2@2", S: "ab2@8 ab1@3 ~@5", T: "c2@2 ~@2 c2@3 ~ c2@2 ~ g1 bb1 g1 bb1@2",
  U: "c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@2 ~@2", V: "c2@2 ~@2 c2@3 ~ c2@2 bb1@3 c2@2 ~", W: "ab2",
  X: "ab1!2 ~ ab1!4 ~ ab1@3 ~@5", Y: "c2 ~ c2 ~ c2 ~ c2 bb1", Z: "c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@2 bb1@2",
  AA: "[c2@2 ~@2 c2@3 ~ c2@3 ~ g1@2 ab1@4 ~@2 ab1@2 ~@2 ab1@3 ~ ab1@4]/2",
  AB: "[c2@2 ~@2 c2@3 ~ c2@2 ~ g1@2 ~ ab1@5 ~ ab1@2 ~@2 ab1@2 ~@2 ab1@3 ~]/2",
  AC: "[c2@2 ~@2 c2@3 ~ c2@2 ~ g1@2 ~ ab1@5 ~ ab1@2 ~@2 ab1@2 ~@6]/2",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · piano
const piano = note(`<
  ~@12 A@4 B@4 C ~ D E F G@2 E F D@2 H I G J H I K L M N O P Q R S ~@2 T U V W X U V Y L M N O P Q R S ~@4 D E F Z G E F
  AA L M N O P Q R S ~@3 AB@4 AC@4 A@4 B@4 A@4 AD@4
>`.pickRestart({
  A: "[[c3,c4,eb4,g4]@3 ~@5 [c4,eb4,g4]@2 c3 [c3,bb3,d4,f4]@2 ~ [c3,c4,eb4,g4]@9 c3 [c3,c4,eb4,g4]@2 ~ [c3,bb3,d4,f4]@2 ~ [c3,c4,eb4,g4]@9 ~ [c3,g3,c4,eb4]@3 [g2,f3,bb3,d4]@3 [ab2,eb3,ab3,c4]@12 ab2@3 ~ ab2@2, ~@8 c3 ~@52 [eb3,ab3,c4]@2 ~]/4", // Cm Bb Cm Bb Cm Gm7 Ab
  B: "[[c3,c4,eb4,g4]@2 ~@6 [c4,eb4,g4]@2 c3 [c3,bb3,d4,f4]@2 ~ [c4,eb4,g4]@8 c3!2 [c4,eb4,g4]@2 ~ [bb3,d4,f4]@2 c3 [c3,c4,eb4,g4]@8 c3@2 [c3,g3,c4,eb4]@3 [g2,f3,bb3,d4]@2 ~ ab2@7 ~ ab2!2 ~ ab2 ~@2 [eb3,ab3,c4]@3 ~, ~@8 c3 ~@5 c3@7 ~@3 c3 ~ c3@3 ~@17 [eb3,ab3,c4]@12 ab2@4 ~@2]/4", // Cm Bb Cm Bb Cm Gm7 Ab
  C: "[c3,g3,c4,eb4] ~@3", D: "[c3,g3,c4,d4,eb4]@15 ~", E: "[c3,eb3,ab3,c4]@15 ~", F: "[c3,f3,bb3,d4]@15 ~",
  G: "[c3,g3,c4,eb4]@15 ~", H: "[ab2,eb3,ab3,c4]@15 ~", I: "[bb2,f3,bb3,d4]", J: "[c3,eb4], [g3,c4]@7 ~",
  K: "[c3,g3,c4,eb4]@9 ~ [c3,f3,bb3,d4]@2 ~ [c3,g3,c4,eb4]@2 ~", L: "[f2,ab3], [eb3,c4]@7 ~",
  M: "[g2,g3,bb3,eb4] [bb2,bb3,d4], ~@4 f3@3 ~", N: "[f2,ab3,c4], eb3@7 ~",
  O: "[c3,g3,c4,eb4]@4 [f3,bb3,d4]@5 ~ [f3,bb3,d4]@2 ~ [g3,bb3,eb4]@3, ~ bb2@3", P: "[f2,eb3,ab3,c4]@15 ~",
  Q: "[g3,bb3,eb4]@8 ~@2 [f3,bb3,d4]@2 ~ [g3,bb3,eb4]@2 ~, g2@7 ~ bb2@8", // Eb Bb Eb
  R: "[f2,ab3,c4,f4]@7 ~ [g2,eb4]@8, ~@4 [bb3,g4]@3 ~", S: "[ab2,c4,eb4,ab4]@11 ~@5",
  T: "[c3,c4,eb4,g4]@15 ~, d4@13 ~@3", U: "[ab3,c4,eb4]@4 ~ [ab4,c5,eb5]@2 ~, c3@15 ~", V: "[c3,bb3,d4,f4]@15 ~",
  W: "[g3,c4,eb4]@10 c3 ~ [g3,c4,eb4] [f3,bb3,d4]@3, c3@9 ~@2 c3@2 ~@3", X: "[c3,c4,eb4]@15 ~, g4@13 ~@3",
  Y: "[c3,c4,d4,eb4,g4]@9 ~ [bb2,bb3,d4,f4]@2 ~ [c3,c4,eb4,g4]@2 ~", // Cm Bb Cm
  Z: "[g3,c4,eb4]@9 ~ [g3,c4,eb4]!2 ~ [f3,bb3,d4]@3, c3@15 ~", // Cm Bb
  AA: "[c3,g3,c4,eb4]@9 ~ [bb2,f3,bb3,d4]@2 ~ [c3,g3,c4,eb4]@2 ~", // Cm Bb Cm
  AB: "[[c3,c4,eb4,g4]@3 ~@5 [c4,eb4,g4]@2 c3 [c3,bb3,d4,f4]@2 ~ [c3,c4,eb4,g4]@4 ~@5 c3 [c3,c4,eb4,g4]@2 ~ [c3,bb3,d4,f4]@2 ~ [c3,c4,eb4,g4]@4 ~@6 [c3,g3,c4,eb4]@3 [g2,f3,bb3,d4]@3 [ab2,eb3,ab3,c4]@12 ab2@3 ~ ab2@2, ~@8 c3 ~@52 [eb3,ab3,c4]@2 ~]/4", // Cm Bb Cm Bb Cm Gm7 Ab
  AC: "[[c3,c4,eb4,g4]@2 ~@6 [c4,eb4,g4]@2 c3 [c3,bb3,d4,f4]@2 ~ [c3,c4,eb4,g4]@4 ~@4 c3!2 [c4,eb4,g4]@2 ~ [bb3,d4,f4]@2 c3 [c3,c4,eb4,g4]@4 ~@4 c3@2 [c3,g3,c4,eb4]@3 [g2,f3,bb3,d4]@2 ~ ab2@7 ~ ab2!2 ~ ab2 ~@2 [eb3,ab3,c4]@3 ~, ~@8 c3 ~@15 c3 ~ c3@3 ~@17 [eb3,ab3,c4]@12 ab2@4 ~@2]/4", // Cm Bb Cm Bb Cm Gm7 Ab
  AD: "[[c3,c4,eb4,g4]@2 ~@6 [c4,eb4,g4]@2 c3 [c3,bb3,d4,f4]@2 ~ [c4,eb4,g4]@8 c3!2 [c4,eb4,g4]@2 ~ [bb3,d4,f4]@2 c3 [c3,c4,eb4,g4]@8 c3@2 [c3,g3,c4,eb4]@3 [g2,f3,bb3,d4]@2 ~ ab2@7 ~ ab2 ~@9, ~@8 c3 ~@5 c3@7 ~@3 c3 ~ c3@3 ~@17 [eb3,ab3,c4]@13 ~@5]/4", // Cm Bb Cm Bb Cm Gm7 Ab
})).s("gm_piano").gain(0.35)

// other · electric guitar muted · "muted gt"
const electric_guitar_muted = note("<A@38 ~@8 A@10 ~@8 A@4 ~@4 A@4 ~@9 A@25 B>".pickRestart({
  A: "c3!16", B: "c3!12 ~@4",
})).s("gm_electric_guitar_muted").gain(0.4)

// chords · electric guitar clean · "overd gt"
const electric_guitar_clean = note(`<
  ~@4 A B C@2 A D E@2 F@4 G@4 H ~@17 I J K L I M N O ~ P Q@2 R S Q@2 R T I J K L I M N O ~@12 I J K L I M N U V ~@2 A B
  C@2 A B W@2 X@4 Y@4 X@4 Y@4
>`.pickRestart({
  A: "[c3,g3,c4]@2 ~@6 [c3,g3,c4]@2 ~ [bb2,f3,bb3]@2 ~ [c3,g3,c4]@2", // C5 Bb5 C5
  B: "~@8 [c3,g3,c4]@2 ~ [bb2,f3,bb3]@2 ~ [c3,g3,c4]@2", C: "[~@8 [c3,g3,c4]@2 ~ [g2,d3,g3]@2 ~ [ab2,eb3,ab3]@17 ~]/2",
  D: "~@10 [c3,g3,c4]@2 ~ [bb2,f3,bb3]@2 ~", E: "[[c3,g3,c4]@2 ~@6 [c3,g3,c4]@2 ~ [g2,d3,g3]@2 ~ [ab2,eb3,ab3]@18]/2",
  F: "[[c3,g3,c4]@3 ~@3 [c3,bb3]!2 [c3,bb3,eb4]@2 ~ [c3,bb3,d4]@2 ~ [c3,bb3,eb4]@8 ~@2 [c3,bb3,eb4]@2 ~ [c3,bb3,d4]@2 ~ [c3,bb3,eb4]@8 ~@2 [c3,g3,c4]@2 ~ [g2,d3,g3]@2 ~ [ab2,eb3,ab3]@17 ~]/4", // C5 C7 Cm7 Gm Cm7 Gm Cm7 C5 …
  G: "[[c3,g3,c4]@4 ~@2 [c3,bb3]!2 [c3,bb3,eb4]@2 ~ [c3,bb3,d4]@2 ~ [c3,bb3,eb4]@8 ~@2 [c3,bb3,eb4]@2 ~ [c3,bb3,d4]@2 ~ [c3,bb3,eb4]@8 ~@2 [c3,g3,c4]@2 ~ [g2,d3,g3]@2 ~ [ab2,eb3,ab3]@17 ~]/4", // C5 C7 Cm7 Gm Cm7 Gm Cm7 C5 …
  H: "[c3,g3,c4]@3 ~@5", I: "[f2,c3]@14 bb3!2, f3@13 ~@3", J: "[g2,bb3,eb4]@7 ~ [bb2,f3,d4]@8",
  K: "[f2,c3,f3]@13 ~ c3!2", L: "[c3,g3,c4]@3 ~ [bb2,f3,bb3]@12", M: "[g2,bb3,eb4]@8 [bb2,f3,d4]@7 ~",
  N: "[f2,f3]@2 ~ [e2,e3]@3 [f2,f3]@2 [g2,g3]@3 [f2,f3]@3 [g2,g3]@2", O: "[ab2,ab3]@5 ~@3", P: "~@14 [c3,c4]!2",
  Q: "[[c3,eb4,g4]@31 ~]/2", R: "[c3,d4,f4]@15 ~", S: "[c4,eb4]@14 c3!2, c3@13 ~@3", T: "[c3,c4,eb4]", U: "[ab2,ab3]",
  V: "[ab2,eb3,ab3]!2 ~ [ab2,eb3,ab3]!5 [ab2,eb3,ab3]@2 ~@6", // Ab5
  W: "[~@8 [c3,g3,c4]@2 ~ [g2,d3,g3]@2 ~ [ab2,eb3,ab3]@18]/2", // C5 G5 Ab5
  X: "[[c3,g3,c4]@3 ~@3 [c3,g3]!2 [c3,c4,eb4]@2 ~ [c3,bb3,d4]@2 ~ [c3,c4,eb4]@7 ~ [c3,g3]!2 [c3,c4,eb4]@2 ~ [c3,bb3,d4]@2 ~ [c3,c4,eb4]@8 [c3,g3]!2 [c3,g3,c4]@2 ~ [g2,d3,g3]@2 ~ [ab2,eb3,ab3]@17 ~]/4", // C5 Cm Gm Cm C5 Cm Gm Cm …
  Y: "[[c3,g3,c4]@3 ~@3 [c3,g3]!2 [c3,c4,eb4]@2 ~ [c3,bb3,d4]@2 ~ [c3,c4,eb4]@7 ~ [c3,g3]!2 [c3,c4,eb4]@2 ~ [c3,bb3,d4]@2 ~ [c3,c4,eb4]@7 ~ [c3,g3] c3 [c3,g3,c4]@2 ~ [g2,d3,g3]@2 ~ [ab2,eb3,ab3]@17 ~]/4", // C5 Cm Gm Cm C5 Cm Gm Cm …
})).s("gm_electric_guitar_clean").gain(0.39).pan(0.7)

// chords · piano · "synth"
const piano_2 = note("<~@87 A@4 B C@3 B D@3 B E@3 A@4 B C@3>".pickRestart({
  A: "[~@48 ab6@15 ~, ~@8 [c5,eb6]@55 ~]/4", B: "[c5,eb6,g6] ~@3", C: "[~@32 ab6@15 ~, ~ [c5,eb6]@11]/3",
  D: "[~@32 ab6@15 ~, ~@8 [c5,eb6]@39 ~]/3", E: "[~@2 ab6, ~ [c5,eb6]@5]/3",
})).s("gm_piano").gain(0.06)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B@2 ~ A C A ~ D@7 E D@9 F D@15 G D@17 G D@20 G D@5 E D@3 A D@3 E D@3 H D@7 E
>`.pickRestart({
  A: "x ~@7 x ~@2 x ~@2 x ~", B: "~@8 x ~@2 x ~@2 x ~", C: "~@10 x ~@2 x ~@2", D: "x!2", E: "x ~@7 x ~@2 x ~@4",
  F: "x ~@6 x", G: "~ x", H: "x ~@3 x!2 ~@2",
})).gain(0.72)

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

// drums · low tom
const low_tom = s("lt").struct("<~@29 A ~@15 B ~@17 B ~@20 B ~@26>".pickRestart({
  A: "~@5 x ~@2", B: "~@6 x!2 ~@8",
})).gain(0.72)

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

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

// drums · open hat
const open_hat = s("oh").struct("<~@19 A ~@9 B ~@11 C ~@5 C ~@11 C ~@19 C ~@18 C ~@12>".pickRestart({
  A: "~@3 x", B: "~@4 x ~@2 x", C: "~@7 x",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@4 A B@2 ~ A C A ~@27 D ~@17 D ~@19 D ~@14 D ~@3 D ~@3 D ~@3 D ~@3 D ~@3>".pickRestart({
  A: "x ~@7 x ~@2 x ~@2 x ~", B: "~@8 x ~@2 x ~@2 x ~", C: "~@10 x ~@2 x ~@2", D: "x",
})).gain(0.64)

// drums · tambourine
const tambourine = s("tb").struct("<~@12 [~ x ~@2]!7 [~ x ~ x] ~@67 [~ x ~@2]!24>").gain(0.64)

stack(
  bass, piano, electric_guitar_muted, electric_guitar_clean, piano_2, kick, snare, low_tom, hihat, hihat_soft, open_hat,
  crash, tambourine
)

More by Survivor