Strudelify
Linger cover art

1993 · Everybody Else Is Doing It, So Why Can't We?

Linger

The Cranberries

KeyD majorTempo99 bpm
0:00/0:00
// Linger — The Cranberries
// 99 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(99/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 · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel = note("<A@7 B@2 C@2 D@2 E@3 ~@92>".pickRestart({
  A: "[~@17 f#4@6 ~@7 f#4@6 ~@3 d4@4 f#4@6 ~@6 f#4@6 ~@7 f#4@6 ~@3 d4@4 f#4@6 ~@6 f#4@6 ~@7 f#4@6 ~@3 d4@4 f#4@6 ~@6 f#4@6 ~@7 f#4@6 ~@3 d4@4 f#4@6 ~@6 f#4@6 ~@7 f#4@6 ~@3 d4@4 f#4@6 ~@6 f#4@6 ~@7 f#4@4, ~@11 a3@13 a3@12 a3@13 a3@13 a3@12 a3@13 a3@13 a3@12 a3@13 a3@13 a3@12 a3@13 a3@13 a3@12 a3@13 a3@13 a3@10, ~@14 d4@6 ~@7 d4@6 ~@19 d4@6 ~@7 d4@6 ~@19 d4@6 ~@7 d4@6 ~@19 d4@6 ~@7 d4@6 ~@19 d4@6 ~@7 d4@6 ~@19 d4@6 ~@7 d4@6 ~]/7",
  B: "[~@5 d4@4 f#4@6 ~@6 f#4@6 ~@7 f#4@6 ~@7 f#4@6 ~@6 f#4@5, ~@2 a3@13 a3@13 a3@12 a3@13 a3@11, ~@18 d4@6 ~@7 d4@6 ~@7 d4@6 ~@6 d4@6 ~@2]/2",
  C: "[~@8 f#4@6 ~@7 f#4@6 ~@6 f#4@6 ~@7 f#4@6 ~@7 f#4@5, ~@2 a3@12 a3@13 a3@13 a3@12 a3@12, ~@5 d4@6 ~@7 d4@6 ~@6 d4@6 ~@7 d4@6 ~@7 d4@6 ~@2]/2",
  D: "[~@7 f#4@6 ~@7 f#4@6 ~@7 f#4@6 ~@6 f#4@6 ~@7 f#4@6, ~ a3@13 a3@12 a3@13 a3@13 a3@12, ~@4 d4@6 ~@7 d4@6 ~@7 d4@6 ~@6 d4@6 ~@7 d4@6 ~@3]/2",
  E: "~ f#4 ~ f#4, a3!2, ~ d4@2 ~@2 d4@2 ~",
})).s("gm_acoustic_guitar_steel").gain(0.8)

// other · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel_2 = note("<A B@4 C D@3 E F@3 G@2 H ~@92>".pickRestart({
  A: "~@11 g3@5 ~ g3@15",
  B: "[~@4 g3@5 ~@2 g3@17 ~@2 a3@5 ~ a3@17 ~@2 a3@5 ~ a3@17 ~@2 g3@5 ~@2 g3@17 ~@2 g3@5 ~ g3@16]/4",
  C: "~@3 a3@5 ~ a3@17 ~@2 a3@4", D: "[~@3 a3@17 ~@2 g3@5 ~ g3@17 ~@2 g3@5 ~ g3@17 ~@2 a3@5 ~@2 a3@17]/3",
  E: "~@2 a3@5 ~ a3@17 ~@2 g3@5", F: "[~ g3@17 ~@2 g3@5 ~@2 g3@17 ~@2 a3@5 ~ a3@17 ~@2 a3@5 ~ a3@17 ~@2]/3",
  G: "g3@3 ~ g3@11 ~", H: "a3@3 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.8).pan(1)

// chords · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel_3 = note(`<
  ~@21 A B@2 C D@2 E F A B@2 C D@2 E F A B@2 C D@2 E F A B@2 C D@2 E F A B@2 C D@2 E F A B@2 C D@2 E F A B@2 G H@2 E I A
  B@2 G H@2 E I A B@2 G H@2 E I A B@2 G H@2 E I ~@7
>`.pickRestart({
  A: "[a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,e4] ~ [a3,d4,e4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@5 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // D Asus4 D
  B: "[[a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,e4] ~ [a3,d4,e4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@5 ~ [a3,d4,f#4] ~ [a3,d4,f#4] [a3,f#4] d4 ~ [c#4,f#4]@3 ~ [a3,c#4,f#4] ~ c#4 ~ c#4@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4]@4 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,f#4] c#4 ~, ~@31 a3@4 ~@3 [a3,f#4]@5 ~@21]/2", // D Asus4 D F#5 F#m A F#m D
  C: "[a3,c#4,f#4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4]@2 ~@2 [a3,c#4,e4] ~ [a3,e4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4]@5 ~ [a3,c#4,f#4] ~ c#4!2 ~@2, ~@13 c#4@3 ~@12 [a3,f#4]@3 ~", // F#m A A5 F#m D
  D: "[~ [g3,c4,e4]@3 [g3,c4,e4] ~ [c4,e4] g3 [g3,c4,e4]@3 ~ [g3,c4,e4] ~ [g3,c4,e4]@3 ~ [c4,e4] g3 ~ [g3,c4,e4]@4 ~ [g3,c4,e4] ~ [g3,c4,e4] ~@2 g3@2 [g3,c4,e4]@3 ~ [g3,c4,e4] ~ [g3,c4,e4] ~ c4@2 ~ [g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,e4] ~ [g3,c4,e4]@4 ~@2 [g3,c4,e4] ~ [c4,e4] ~ [c4,e4] ~, ~@20 [g3,e4] ~@9 g3 ~]/2", // C
  E: "[g3,b3,d4]@2 ~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@3 ~ [g3,b3,d4] ~ [g3,b3,d4]@3 ~ [g3,b3,d4] ~ [g3,b3,d4]@5 ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  F: "[g3,b3,d4]@3 ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@3 ~ [g3,b3,d4] ~ [g3,b3,d4]@2 ~@2 [g3,b3,d4] ~ [g3,b3,d4]@11 ~", // G
  G: "[a3,c#4,f#4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4]@2 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4]@5 ~ [a3,c#4,f#4] ~ [a3,f#4]@2 c#4 ~, ~@28 c#4 ~@3", // F#m A F#m D
  H: "[~ [g3,c4,e4]@3 [g3,c4,e4] ~ [c4,e4] g3 [g3,c4,e4]@3 ~ [g3,c4,e4] ~ [g3,c4,e4]@3 ~@2 [g3,c4,e4] ~ [g3,c4,e4]@4 ~ [g3,c4,e4] ~ [c4,e4] g3 ~ g3@2 [g3,c4,e4]@3 ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]@2 ~ [g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,e4] ~ [g3,c4,e4]@4 ~@2 [g3,c4,e4] ~ [c4,e4] ~ [c4,e4] ~, ~@30 g3 ~]/2", // C
  I: "[g3,b3,d4]@3 ~ [g3,b3,d4] ~ [g3,b3,d4] ~@2 [g3,b3]@3 [g3,b3,d4] ~ [g3,b3,d4]@2 ~@2 [g3,b3,d4] ~ [g3,b3,d4]@11 ~, ~@8 d4@3 ~@21", // G
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.1)

// chords · string ensemble 1 · "Strings Chord"
const string_ensemble_1 = note(`<
  ~@21 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2
  A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 F ~@6
>`.pickRestart({
  A: "[d4,f#4,a4]/2", B: "[c#4,f#4,a4]/2", C: "[e4,g4,c5]/2", D: "[d4,g4,b4]/2", E: "[g4@3 [g4,c#5], [d4,b4]]/2",
  F: "[a4,d5,f#5]", // D
})).s("gm_string_ensemble_1").gain(0.55)

// chords · lead 8 bass lead · "Lead"
const lead_8_bass_lead = note(`<
  ~@15 A B ~@2 C D@2 ~@15 E@2 F@2 G@4 ~@16 E@2 F@2 G@4 E@2 F@2 H@4 I@2 F@2 H@4 I@2 F@2 H@4 I@2 F@2 H@4 ~ J K J K L@2
>`.pickRestart({
  A: "[a4,c#5,f#5]@6 ~ [a4,c#5,f#5]@2 ~@3 [a4,c#5,e5]@7 ~ [a4,c#5,e5]@10 ~@2", // F#m A
  B: "[a4,c#5,f#5]@4 ~@2 [a4,c#5,f#5]@23 ~@3", C: "[g4,b4]@3 [g4,b4]@3 [g4,b4]@3 [g4,b4]@3 [g4,b4]@4",
  D: "[[b4,d5,g5]@4 [b4,d5,g5]@3 [b4,d5,g5]@5 a5@2 [d5,f#5]@18, ~@7 a5@5 ~@4]/2", // G D
  E: "[[a4,c#5,f#5]@5 ~ [a4,c#5,f#5]@2 ~@4 [a4,c#5,e5]@5 ~@3 a4@35 ~@9, ~@19 [c#5,e5]@34 ~@11]/2", // F#m A C#m
  F: "[[a4,c#5,f#5]@5 ~ [a4,c#5,f#5]@2 ~@4 [a4,c#5,e5]@5 ~@2 [a4,c#5,e5]@32 ~@13]/2", // F#m A
  G: "[[g4,c5,e5]@5 ~ [g4,c5,e5]@3 ~@3 [g4,c5,e5]@5 ~@2 [g4,c5,e5]@17 ~@27 [b4,d5,g5]@5 ~@2 [b4,d5,g5]@4 ~@2 [b4,d5,g5]@5 ~@2 [b4,d5,g5]@26 ~@19]/4", // C G
  H: "[[g4,c5,e5]@5 ~ [g4,c5,e5]@3 ~@3 [g4,c5,e5]@5 ~@2 [g4,c5,e5]@17 ~@28 b4@5 ~ [b4,d5,g5]@4 ~@2 [b4,d5,g5]@5 ~@2 [b4,d5,g5]@26 ~@19, ~@63 [d5,g5]@5 ~@60]/4", // C G G5
  I: "[[a4,c#5,f#5]@5 ~ [a4,c#5,f#5]@2 ~@4 [a4,c#5,e5]@5 ~@3 [a4,c#5,e5]@35 ~@9]/2", J: "g3 f#4 d4 g3 f#4 d4 g3 f#4",
  K: "a3 f#4 d4 a3 f#4 d4 a3 f#4", L: "[g3 f#4 d4 g3 f#4 d4 g3 ~ [a3,d4]@8, ~@7 f#4@9]/2",
})).s("gm_lead_8_bass_lead").gain(0.06).pan(0.9)

// chords · rock organ · "BX-3 Organ"
const rock_organ = note("<~@28 A@3 B C D E@2 F ~@15 A@3 B C D E@2 F ~@47>".pickRestart({
  A: "[~@32 a4@3 ~@3 [d5,f#5]@2 ~@3 [a4,d5,f#5]@2 ~@5 [a4,d5,f#5]@3 ~@3 a4@2 ~@5 [a4,d5,f#5]@2 ~@5 [a4,d5,f#5]@3 ~@3 [a4,d5,f#5]@3 ~@3 [a4,d5,f#5]@3 ~@3 [a4,d5,f#5]@2 ~@6, ~@31 [d5,f#5]@3 ~@21 [d5,f#5]@2 ~@39]/3", // D
  B: "[a4,c#5,e5]@3 ~@3 [a4,c#5,e5]@2 ~@4 [a4,c#5,e5]@2 ~@4 [a4,e5]@3 ~@2 [a4,c#5,e5]@3 ~@6, ~@17 c#5@3 ~@12", // A A5 A
  C: "[a4,c#5,e5]@2 ~@4 [a4,c#5]@2 ~@3 [a4,c#5,e5]@2 ~@4 [a4,c#5,e5]@2 ~@4 [a4,c#5,e5]@2 ~@7, ~@6 e5 ~@25", // A
  D: "[g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@5", // C
  E: "[[g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@4 [g4,b4,d5]@3 ~@4 [g4,b4,d5]@3 ~@2 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@3 ~@3 [g4,d5]@2 ~@7, ~@55 b4 ~@8]/2", // C G G5
  F: "[b4,d5,g5]@4 ~@2 [b4,d5,g5]@3 ~@3 [d5,g5]@3 ~@3 [b4,d5,g5]@3 ~@3 [b4,d5,g5]@2 ~@6, ~@12 b4 ~@19", // G G5 G
})).s("gm_rock_organ").gain(0.1).pan(0.7)

// bass · electric bass finger · "Electric Bass (finger)"
const bass = note(`<
  ~@13 A@3 B C@2 D E F@2 G H I@2 J E F@2 G H I K J L F@2 G H I@2 J E F@2 G H I@2 J E F@2 G H I K J L F@2 G H I@2 J E F@2
  G H I@2 J E F@2 G H I@2 J E F@2 G H I K J E F@2 G H I K J M N@4 O@3
>`.pickRestart({
  A: "a1@3 a1@5", B: "a1@3 a1@3 d2@2", C: "c2@3 c2@5", D: "g1@3 g1@5", E: "g1@4 g1@3 g1 g1@2 g1@2 c2@4",
  F: "d2@7 d2@3 d2@6", G: "a1@7 a1@3 a1@6", H: "a1@7 a1@3 a1@2 d2@4", I: "c2@7 c2@3 c2@6", J: "g1@7 g1@3 g1@4 g1@2",
  K: "c2@7 c2@3 c2@2 c2@4", L: "g1@4 g1@3 g1 g1@4 c2@4", M: "g1@4 g1@3 g1 g1@2 g1@2 g1@4", N: "d2@3 d2@5", O: "d2/3",
})).s("gm_electric_bass_finger").gain(0.8)

// other · lead 5 charang · "Charang"
const lead_5_charang = note("<~@68 A B@2 C@2 D@2 E@2 ~@7 A F@2 ~@21>".pickRestart({
  A: "~@25 d4@7", B: "[e4@31 g4@25 a4@7 ~]/2", C: "[e4@27 ~ e4@4]/2", D: "[g4@43 ~@5 g4@6 ~@3 g4@7]/2",
  E: "[d4@35 ~@29]/2", F: "[e4@31 g4@26 ~@7]/2",
})).s("gm_lead_5_charang").gain(0.8).pan(1)

// other · lead 1 square · "Square"
const lead_1_square = note("<~@3 A@8 ~@97>".pickRestart({
  A: "[~ d3@15]/8",
})).s("gm_lead_1_square").gain(0.5).pan(1)

// other · tremolo strings
const tremolo_strings = note("<~@9 A@4 B@3 ~@29 C D E@2 F@4 G@2 H@2 ~@51>".pickRestart({
  A: "[~ d5@18 ~ f#5@6 a5@25 ~ d5@19 f#5@6 a5@25 c6@26]/4", B: "[d6@67 ~@29]/3", C: "f#3@27 ~ g3@4",
  D: "f#3@13 ~@2 f#3@6 e3@6 d3@5", E: "[f#3@15 ~]/2", F: "[e3@11 d3@20 e3@13 d3@19 g3@8 f#3@4 g3@28 ~@25]/4",
  G: "[[d3,f#3,f#5]@57 ~@7]/2", H: "[[c#3,e3]@15 ~, e5@55 ~@9]/2",
})).s("gm_tremolo_strings").gain(0.5).pan(0.4)

// chords · lead 2 sawtooth · "Saw"
const lead_2_sawtooth = note("<~@71 A B C D E F ~@18 A B C D E F ~@7>".pickRestart({
  A: "[c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [f#4,a4]@2 ~@12 c#4 [f#4,a4], ~@16 c#4 ~@15", // F#m
  B: "c#4 [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~ [c#4,f#4,a4] ~@2 c#4@2 ~@14, ~@15 [f#4,a4]@2 ~@15", // F#m
  C: "[c4,e4,g4] ~ [e4,g4] c4 g4 [c4,e4] [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]@3 ~@10 c4 ~ [c4,e4,g4]", // C Em C
  D: "~ [c4,e4,g4] ~ [c4,e4,g4] ~ [e4,g4] c4 [e4,g4] c4 [e4,g4] c4 ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]@4 ~@12", // C Em C
  E: "[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]@2 ~@10 b3 ~@2 [b3,d4,g4]", // G
  F: "~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~@16", // G
})).s("gm_lead_2_sawtooth").gain(0.4).pan(1)

// drums · kick
const kick = s("bd").struct(`<
  ~@13
  [x ~@2 x ~@4]!7
  [x ~@6 x ~@2 x ~@5]!32
  [x ~ x ~@4 x ~@2 x ~@5]
  [x ~@6 x ~@2 x ~@5]!48
  [x ~@2 x ~@4]!4
  x
  ~@2
>`).gain(0.71)

// drums · snare
const snare = s("sd").struct("<~@15 [~@3 x]!5 [~@4 x!4 ~@4 x!4]!81 ~@7>").gain(0.71)

// drums · hihat
const hihat = s("hh").struct("<~@15 [x!3 ~]!5 [~@4 x!4 ~@4 x!4]!81 ~@7>").gain(0.71)

// drums · crash
const crash = s("cr").struct("<~@20 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@31 A ~@7>".pickRestart({
  A: "~@3 x",
})).gain(0.71)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@20 [x!4 ~@2 x!6 ~@2 x!2]!81 [~@3 x]!3 ~@4>").gain(3.62)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, acoustic_guitar_steel_3, string_ensemble_1, lead_8_bass_lead,
  rock_organ, bass, lead_5_charang, lead_1_square, tremolo_strings, lead_2_sawtooth, kick, snare, hihat, crash, cabasa
)

More by The Cranberries