Strudelify
Cordell cover art

To The Faithful Departed

Cordell

The Cranberries

KeyG majorTempo159 bpm
0:00/0:00
// Cordell — The Cranberries
// 159 bpm, 12/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/8 at bar 1, 12/8 at bar 1) are rendered on a constant 12/8 grid of one bar per cycle
// note: Full arrangement: all 97 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(159/6)

// 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.

// other · pad poly · "Dolores 2"
const pad_poly = note(`<
  ~@8 A B C@2 D E@2 ~ F G H I J K L M N@2 O P Q K L R@3 O P Q K L S@2 T U V@2 W X ~ F G H I Y Z AA ~ F B H I D AB AC M
  N@2 O P Q K L R@3 O P Q K L S@2 T U V@2 W X ~ AD@2 AE AD@3 AE@2 ~
>`.pickRestart({
  A: "~@12 a4@3 ~ b4@4 c5@3 ~", B: "d5@5 ~ e5@5 ~ a4@5 ~@5 c5@2",
  C: "[d5@8 d5@2 d5@2 d5@3 ~ g5@4 d5@2 e5@10 d5@2 e5@2 d5@8 c5@2 d5@2]/2", D: "e5@5 ~@15 c5@2 c5@2",
  E: "[c5@4 c5@4 c5@3 ~ c5@3 ~ d5@2 e5@4 d5@12 ~@14]/2", F: "~@10 a4@2 a4@3 ~ b4@4 c5@3 ~",
  G: "d5@3 ~ e5@2 a4@4 a4@2 c5@5 ~@3 c5@2 c5@2", H: "d5@3 ~ d5@5 ~ d5@2 d5@3 ~ g5@5 ~ d5@2", I: "e5@4 d5 e5 d5@4 c5 d5",
  J: "e5@5 ~@13 c5@2 c5@3 ~", K: "c5@8 c5@3 ~ c5@3 ~ d5@6 e5@2", L: "e5@2 d5@2 d5@7 ~@13", M: "~@20 g5@3 ~",
  N: "[a5@16 g5@4 a5@2 a5@19 ~@3 f5@3 ~]/2", O: "g5@9 ~ g5@2 g5@3 ~ d5@5 ~ f5@2", P: "e5@9 ~ f5@2 e5@8 d5@3 ~",
  Q: "c5@5 ~@13 c5@2 c5@3 ~", R: "[~@16 g5@4 a5@2 a5@18 g5@4 a5@2 a5@18 b5@4 f5@3 ~]/3",
  S: "[~@18 d5@2 e5@9 ~ a4@5 ~@7 b4@2 c5@3 ~]/2", T: "a4@10 ~@8 a4@2 b4@3 ~", U: "g4@10 ~@8 b4@2 c5@3 ~",
  V: "[c5@5 ~ b4@5 ~ c5@5 ~ g4@2 b4@9 ~ a4@5 ~@7 [b4,e5]@2 [c5,f5]@3 ~]/2", W: "[a4,f5]@10 ~@8 [a4,d5]@2 [b4,e5]@3 ~",
  X: "[g4,d5]@5 ~@7", Y: "e5@5 ~@17 b4@2", Z: "c5@5 ~ c5@4 e5@2", AA: "e5@3 ~ d5@2 d5@5 ~@13",
  AB: "c5@10 ~@2 c5@9 ~ e5@2", AC: "e5@3 ~ e5@4 d5@9 ~@7", AD: "~@4 e5@4 c5@3 ~@5 e5@4 c5@3 ~",
  AE: "~@4 d5@4 b4@3 ~@5 d5@4 b4@3 ~",
})).s("gm_pad_poly").gain(0.48)

// chords · acoustic guitar nylon · "Guitare"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H E F G I E F G@2 E F G I E F G J@3 K@4 G L@3 K@4 G M@3 K@4 G L@3 K@4 G L@3 K@4 G M@3 K@4 G L@3 K@4 G
  M@3 K@4 G L@3 K@4 G N O
>`.pickRestart({
  A: "[e3,a3,c4]@5 ~ [e3,a3,c4]@3 ~ [e3,a3,c4]@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2", // Am
  B: "[f3,a3,c4]@5 ~ [f3,a3,c4]@3 ~ [f3,a3,c4]@2 [f3,a3,b3]@5 ~ [f3,a3,b3]@2 [f3,a3,c4]@2 [f3,a3,c4]@2", // F Bm7b5 F
  C: "[g3,b3,d4]@5 ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@2 [g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2", // G
  D: "[g3,c4,e4]@5 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@2 [g3,c4,e4]@5 ~ [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2", // C
  E: "[e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2", // Am
  F: "[f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2", // F
  G: "[g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2", // G
  H: "[g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 ~ [b3,d4]@10 ~, ~@6 g3@5 ~", // G Bm
  I: "[g3,c4,e4]@5 ~ [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@5 ~ [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2", // C
  J: "[[g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 b3@6 b3@2 [g3,d4]@3 ~ [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, ~@3 [g3,d4]@2 b3@13]/3", // G G5 Am F G5
  K: "[[g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,d4]@2 [g3,c4,e4]@5 ~ [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@5 ~ [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, ~@11 b3@37]/4", // G G5 C Am F
  L: "[[g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,d4]@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, ~@11 b3@25]/3", // G G5 Am F
  M: "[[g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 ~ d4@10 ~ [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@2 [e3,a3,c4]@2 [e3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@5 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, ~@6 g3@5 ~@25, ~@13 b3@59]/3", // G Am F
  N: "[g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@5 ~ [g3,b3,d4]@2 [g3,d4]@2 [g3,d4]@2, ~@5 b3", // G G5
  O: "[e3,a3,c4,e4]@19 ~@5", // Am
})).s("gm_acoustic_guitar_nylon").gain(0.29)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<A@2 B@2 C D@3 ~@89>".pickRestart({
  A: "[c4@9 b3@2 c4]/2", B: "[d4@16 c4@4 d4@2 e4@12 f4@2 e4@8 d4@3 ~]/2", C: "c4",
  D: "[c4@12 c4@4 d4@2 e4@4 ~@22 a3@3 ~ g3@24, ~@11 d4@25]/3",
})).s("gm_string_ensemble_1").gain(0.24)

// other · epiano1 · "Piano"
const epiano1 = note(`<
  ~@8 A B C D E F C G H I J K H I C G ~@16 L M C N O P Q R A B C D E F C G H I J K H I C G S T U V S T W X S T U V S T W
  X S T U Y S T W X S T U V S T W@2 Z
>`.pickRestart({
  A: "~@12 a4@3 ~ e5@4 c5@3 ~", B: "a4@10 ~@2 a4@3 ~ f5@4 c5@3 ~", C: "g4@3 ~ b4@4 d5@3 ~ g5@3 ~@5 b4@3 ~",
  D: "g4@3 ~ c5@4 e5@3 ~ g5@3 ~ c6@4 g5@2 ~@2", E: "~@16 e4@4 a4@3 ~", F: "~@16 a4@4 c5@3 ~",
  G: "g4@3 ~ b4@4 d5@3 ~ g5@3 ~ b5@4 g5@2 ~@2", H: "~@12 e4@3 ~ a4@4 c5@3 ~", I: "~@12 f4@3 ~ a4@4 c5@3 ~",
  J: "d4@3 ~ g4@4 b4@3 ~ d5@3 ~@5 b4@3 ~", K: "e4@3 ~ g4@4 c5@3 ~ e5@3 ~ g5@4 e5@3 ~", L: "~@12 e4@3 ~ c5@4 c5@3 ~",
  M: "e5@2 ~@10 f5@3 ~ c5@4 a4@3 ~", N: "g4@3 ~ c5@4 e5@3 ~ c6@3 ~ g5@4 b5@3 ~", O: "~@12 e5@3 ~ g5@4 a5@3 ~",
  P: "~@12 f5@3 ~ c5@4 a4@3 ~", Q: "g4@3 ~ b4@4 b4@3 ~ d5@3 ~ g5@4 ~@2 b4@2",
  R: "g4@3 ~ b4@4 b4@3 ~ d5@3 ~ g5@4 b5@3 ~", S: "a4@3 ~ e5@4 c5@3 ~ a4@3 ~ e5@4 c5@3 ~",
  T: "a4@3 ~ f5@4 c5@3 ~ a4@4 f5@4 c5@3 ~", U: "b4@3 ~ g5@4 d5@3 ~ b4@3 ~ g5@4 d5@3 ~",
  V: "g4@3 ~ e5@4 c5@3 ~ g4@3 ~ e5@4 c5@2 e5@2", W: "g4@3 ~ d5@4 b4@3 ~ g4@3 ~ d5@4 b4@3 ~",
  X: "g4@3 ~ d5@4 b4@3 ~ d5@3 ~ g5@4 b5@3 ~", Y: "g4@3 ~ e5@4 c5@3 ~ g4@3 ~ e5@4 c5@3 ~", Z: "a4@19 ~@5",
})).s("gm_epiano1").gain(0.1)

// other · flute · "Flžte"
const flute = note("<~@88 A@3 B C@2 D E F>".pickRestart({
  A: "[g6@3 ~ a6@12 b6@4 c7@2 g6@5 ~ a6@12 b6@4 c7@2 g6@17 ~ f6@4 e6@3 ~]/3", B: "e6@9 ~ f6@2 e6@8 d6@3 ~",
  C: "[g6@3 ~ a6@12 b6@4 c7@2 g6@5 ~ a6@12 g6@4 f6@3 ~]/2", D: "e6@8 f6@3 ~ d6@10 ~@2",
  E: "~@2 d6!2 d6@2 ~@2 c6@2 d6@2, ~@3 d6@2 ~", F: "~ e6@21 ~@2",
})).s("gm_flute").gain(0.05)

// other · french horn · "Trombone"
const french_horn = note("<A@2 B@2 C D@3 ~@23 E ~@7 E ~@31 E ~@7 E ~@17>".pickRestart({
  A: "[c4@9 b3@2 c4]/2", B: "[d4@16 c4@4 d4@2 e4@12 f4@2 e4@8 d4@3 ~]/2", C: "c4",
  D: "[c4@12 c4@4 d4@2 e4@4 ~@22 a3@3 ~ g3@24, ~@11 d4@25]/3", E: "b3@8 c4@3 ~ d4@10 ~@2",
})).s("gm_french_horn").gain(0.48)

// bass · acoustic bass · "Basse"
const bass = note(`<
  ~@8 A B C D A B C@2 A B C D A B C@2 E F G H E F G@2 E F G H E F G@2 E F G H E F G@2 A B C D A B C@2 A B C D A B C@2 E
  F G H E F G@2 E F G H E F G@2 E F G H E F G@2 E F G H E F G I A
>`.pickRestart({
  A: "a1@19 ~@5", B: "f1@19 ~@5", C: "g1@19 ~@5", D: "c2@19 ~@5", E: "a1@5 ~ e1@5 ~", F: "f1@5 ~ c2@5 ~",
  G: "g1@5 ~ d1@5 ~", H: "c2@5 ~ g1@5 ~", I: "g1@10 ~@2 d1@9 ~ g1@2",
})).s("gm_acoustic_bass").gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct("<~@24 A@11 B A@3 ~@25 A@3 B A@3 C A@3 B A@3 ~@18>".pickRestart({
  A: "~ x", B: "~@3 x!2 ~", C: "~@3 x!3",
})).gain(0.29)

stack(pad_poly, acoustic_guitar_nylon, string_ensemble_1, epiano1, flute, french_horn, bass, tambourine)

More by The Cranberries