Strudelify

dead island - trailer theme

Giles Lamb

KeyF♯ majorTempo120 bpm
0:00/0:00
// dead island - trailer theme — Giles Lamb
// 120 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/4861744; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 86 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.

// chords · piano
const piano = note(`<
  A@3 B@2 C@2 D@4 E@2 F@7 G@2 H@2 I@8 J@2 K@2 L@7 M@2 N@2 M@2 O@2 M@2 N@2 M@2 O@2 M@2 N@2 M@2 P@2 Q@2 R@2 Q@2 S@2 Q@2
  T@2 Q@2 U@2 V@2 ~
>`.pickRestart({
  A: "[~@23 f#3@12 [f#3,a#3]@13 f#3@12 [f#3,a#3]@12, ~@23 [f#1,f#2]@48 ~, ~@23 c#4@25 b3@24]/3", // F#
  B: "[~ f#3@12 [f#3,a#3]@13 f#3@12 [f#3,a#3]@10, ~ [d#1,d#2]@47, ~ c#4@25 b3@22]/2", // F# D#
  C: "[~@3 f#3@12 [f#3,a#3]@13 f#3@12 [f#3,a#3]@8, ~ [f#1,f#2]@15, ~@3 c#4@25 b3@20]/2", // F#
  D: "[~@5 [b0,b1,f#3,b3,d#4]@51 ~@3 f#3@12 [f#3,a#3]@13 [f#3,b3]@12, ~@59 [f#1,f#2]@37, ~@59 c#4@25 ~@12]/4", // B F# B5 F#
  E: "[[f#3,a#3]@13 f#3@12 [f#3,a#3]@13 [f#3,b3]@10, ~@13 [d#1,d#2]@35, ~@13 c#4@25 ~@10]/2", // F# B5 D#
  F: "[~@3 [f#3,a#3]@12 f#3@13 [f#3,a#3]@12 f#3@13 [f#3,a#3]@12 [b0,b1,f#3,b3,f#4]@51 ~@3 f#3@12 [f#3,a#3]@13 f#3@13 [f#3,a#3]@11, ~@15 [c#1,c#2]@48 ~@56 [f#1,f#2]@48 ~, ~@15 c#4@25 b3@25 ~@54 c#4@25 b3@24]/7", // F# B5 F# C# F#
  G: "[~ f#3@13 [f#3,a#3]@12 f#3@13 [f#3,a#3]@9, ~ [d#1,d#2]@47, ~ c#4@25 b3@22]/2", // F# D#
  H: "[~@3 f#3@13 [f#3,a#3]@12 f#3@13 [f#3,a#3]@7, ~ [f#1,f#2]@15, ~@3 c#4@25 b3@20]/2", // F#
  I: "[~@5 f#3@13 [f#3,a#3]@12 f#3@13 [f#3,c#4]@12 f#3@13 [f#3,a#3]@12 f#3@13 [f#3,a#3]@12 [f#3,a#3]@13 [f#3,a#3]@12 f#3@13 [f#3,a#3]@12 [f#1,f#2]@37, ~@5 [b0,b1]@48 ~@2 [f#1,f#2]@48 ~@2 [d#1,d#2]@48 ~@39, ~@5 [b3,d#4]@25 b3@25 c#4@25 b3@25 c#4@25 b3@25 [f#3,c#4]@25 ~@12]/8", // F# F#5 F# B F# D# B F#5
  J: "[~@7 [b0,b1]@17]/2", K: "[~@16 f#3@12 [f#3,a#3]@13 [f#3,b3]@7, ~ [f#1,f#2]@2, ~@16 c#4@25 ~@7]/2",
  L: "[~@5 [f#3,a#3]@13 f#3@12 [f#3,a#3]@13 f#3@12 [f#3,a#3]@13 f#3@12 [f#3,a#3]@13 f#3@12 [f#3,a#3]@13 f#3@12 [f#3,a#3]@13 f#3@12 [f#3,c#4]@13, ~@9 [d#1,d#2]@24 ~ [f#1,f#2]@24 ~ [b0,b1]@24 ~, ~@18 c#4@25 b3@25 c#4@25 b3@25 [b3,d#4]@25 b3@25]/7", // F# F#5 D# F# B
  M: "[[f#3,c#4]@2 [f#3,c#4]!2 f#3@2 [f#3,a#3]@2 [f#3,b3]@2 [f#3,b3]!2 f#3@2 [f#3,a#3]@2, [f#1,f#2], ~ c#4 ~ b3]/2", // F#5 F# B5 F#
  N: "[[f#3,c#4]@2 [f#3,c#4]!2 f#3@2 [f#3,a#3]@2 [f#3,b3]@2 [f#3,b3]!2 f#3@2 [f#3,a#3]@2, [d#1,d#2], ~ c#4 ~ b3]/2", // F#5 F# B5 F# D#
  O: "[f#3@4 [f#3,a#3]@4 [f#3,b3]@2 [f#3,b3]!2 f#3@2 [f#3,a#3]@2, [b0,b1], [b3,d#4]@2 ~ b3]/2", // F# B5 F# B
  P: "[[f#3,d#4]@2 [f#3,d#4]!2 f#3@2 [f#3,a#3]@2 [f#3,b3]@2 [f#3,b3]!2 f#3@2 [f#3,c#4]@2, [b0,b1], ~ d#4 ~ b3]/2", // D#m F# B5 F#5 B
  Q: "[f#3 [f#3,a#3] f#3 [f#3,a#3], [f#1,f#2], c#4 b3]/2", R: "[f#3 [f#3,a#3] f#3 [f#3,a#3], [d#1,d#2], c#4 b3]/2",
  S: "[[f#3,d#4]@2 [f#3,d#4]!2 [f#3,d#4]@12, [b0,b1], b3 ~]/2", T: "[f#3 [f#3,a#3] f#3 [f#3,c#4], [d#1,d#2], c#4 b3]/2",
  U: "[[b3,f#4] [b3,g#4], [b0,b1,f#3]]/2", V: "[f#2,f#3,c#4]/2",
})).s("gm_piano").gain(0.3)

stack(piano)