Strudelify

When He's Not Around

The Corrs

KeyA majorTempo84 bpm
0:00/0:00
// When He's Not Around — The Corrs
// 84 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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.

// other · violin · ""When He's"
const violin = note("<~@8 A B A B A B A B A B A C ~@32 D E D E D E D E ~@35>".pickRestart({
  A: "a4 e5!4 d5 e5 f#5!2 e5 f#5 g5!2 f#5 e5 d5", B: "a4 e5!4 d5 e5 b4@2 d5 e5 b4 d5 e5 d5 b4",
  C: "a4 e5!4 d5 e5 b4@2 ~@7", D: "a4!2 c#5 a4 e5 a4 c#5 a4 d5 g4!3 f#4 g4 a4 b4",
  E: "a4!2 c#5 a4 e5 a4 c#5 a4 d5 g4!2 f#4 e4 f#4 g4 b4",
})).s("gm_violin").gain(0.45).pan(0.4)

// bass · electric bass pick · "Not Around""
const bass = note(`<
  ~@8 A ~ A ~ A ~ A ~ A ~ A ~ B C B D E F G H I J K L I J K M E N G O P Q P N I J K L I J K M ~@4 R S R S T U V W X@2 Y
  Z AA AB Y Z AA AC Y Z AA AB Y Z AA AC Y Z AA AB Y Z AA AC AD AE AF AG AH
>`.pickRestart({
  A: "a1@3 a1 ~@12", B: "a1 ~ a1@2 ~@10 e1 g1", C: "a1 g1 a1@2 ~@12", D: "a1 g1 a1@2 ~@7 a1@3 g1 e1",
  E: "a1 ~ a1@3 ~@9 e1 g1", F: "a1 g1 a1@2 ~@11 g1", G: "a1 ~ a1@3 ~@11", H: "a1 a1@5 ~@2",
  I: "a1@4 g1@4 f#1 ~@2 f#1 ~ d1 d#1 f1", J: "g1 ~ g1@4 ~ g1 f#1 ~ f#1@4 ~@2", K: "a1@4 g1@4 f#1 ~@2 f#1 ~@3 f#1",
  L: "g1 ~ g1@2 ~@3 g1 d1 ~ d1 ~@2 d1 e1 g1", M: "g1 ~ g1@2 ~@3 g1 d1 ~ d1@5 ~", N: "a1 g1 a1 ~@13",
  O: "~ g2 f#2 e2 d2@5 c#2 d2 e2 d2 b1 g1@2", P: "a1 ~ a1@3 ~@10 g1", Q: "a1 g1 a1 ~@12 g1",
  R: "a1 ~ a1@3 ~@2 a1 c2 ~ c2@3 ~@2 c2", S: "a1 ~ a1@3 ~ e1 f#1 g1@3 f#1@3 e1@2",
  T: "a1 ~ a1@3 ~ a1 e1 a2@3 a1 ~@2 e1 g1", U: "a1 ~ a1@4 g2 a1 a2 ~@2 g2 e2 f#2 e2 ~", V: "a1 ~ a1@14",
  W: "~@2 a3@2 e3@2 d3@2 c#3@2 a2@2 g2@3 b2", X: "[a2@7 ~]/2", Y: "b1@4 a1@4 g#1 ~@2 g#1 ~ e1 f1 g1",
  Z: "a1 ~ a1@4 ~ a1 g#1 ~ g#1@4 ~@2", AA: "b1@4 a1@4 g#1 ~@2 g#1 ~@3 g#1",
  AB: "a1 ~ a1@2 ~@3 a1 e1 ~ e1 ~@2 e1 f#1 a1", AC: "a1 ~ a1@2 ~@3 a1 e1 ~ e1@5 ~", AD: "b1 ~ b1@2 ~@11 a1",
  AE: "b1 a1 b1@6 ~@8", AF: "b1 ~ b1@6 ~@8", AG: "~ a2 g#2 f#2 e2@5 d#2 e2 f#2 e2 c#2 a1@2", AH: "b1 ~@7",
})).s("gm_electric_bass_pick").gain(0.6)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@8 A ~ A ~ A ~ A ~ A ~ A ~ B@7 C D E D E D E D E B@3 F G B@2 C D E D E D E D E ~@4 H I H I J@2 K@2 L@2 M N O N O N O
  N O N O N O N O N O N O N O N O N P Q R ~@2
>`.pickRestart({
  A: "[e3,a3,e4]@3 [e3,a3,e4] ~@12", B: "[a2,e3]@3 [a2,e3] a2!12", C: "[a2,e3]@2 [a2,c#4,e4]@13 ~",
  D: "[e3,a3,c#4]@3 [a2,e3,a3,c#4] a2!5 [f#3,a3,d4]!2 ~ [f#3,a3,d4]@3 ~", // A D
  E: "[g3,a3,d4]@3 [a2,g3,a3,d4] a2!5 [f#3,a3,d4]!2 ~ [f#3,a3,d4]@3 ~", F: "~ g4 f#4 e4 d4@4 ~ c#4 d4 e4 d4 b3 g3@2",
  G: "~@2 [e4,e5]!3 [e4,f#4,e5,f#5] [f#4,f#5]!2 [g4,g5]@8", H: "[a2,e3,a3]!2 ~@2 [d3,e3,g3]!2 ~@2",
  I: "[a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [d3,e3,g3]@3 [d3,e3,f#3]@3 [d3,e3,g3]@2", J: "a2!16", K: "[a2@31 [a2,e3,a3]]/2",
  L: "[a3@16 ~@2 e5!3 [e5,f#5] f#5!2 [f#5,g5] g5!2 [g5,a5] a5!4, [a2,e3]]/2", // Esus2 Gmaj7 Gsus2 A5
  M: "[f#3,b3,d#4]@3 [f#3,b3,d#4] ~@5 [g#3,b3,e4]!2 ~ [g#3,b3,e4]@3 ~, b5@9 ~@7, a5 ~@15", // B E
  N: "[a3,b3,e4]@3 [a3,b3,e4] ~@5 [g#3,b3,e4]!2 ~ [g#3,b3,e4]@3 ~", // Asus2 E
  O: "[f#3,b3,d#4]@3 [f#3,b3,d#4] ~@5 [g#3,b3,e4]!2 ~ [g#3,b3,e4]@3 ~", P: "[f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~@11",
  Q: "[f#3,b3]@2 ~ [f#3,b3]@2 ~@11", R: "[d#3,f#3,b3] ~@2 [d#3,f#3,b3] ~@12",
})).s("gm_distortion_guitar").gain(0.32).pan(0.4)

// chords · epiano2
const epiano2 = note(`<
  ~@20 A@8 B C B D B C B D A@8 B C B D B C B D E F E F E F E F G@7 H I J I H I J I H I J I H I J I H I J I H I J ~@5
>`.pickRestart({
  A: "[~@5 a3@3 g4@2 e4@2 g3@2 [a3,e4]@4 ~@3 a3@3 g4@2 ~@2 g3@2 a3@4 ~@3 a3@3 g4@2 e4@2 g3@2 [a3,e4]@4 ~@3 a3@3 g4@2 ~@2 g3@2 a3@4 ~@3 a3@3 g4@2 e4@2 g3@2 [a3,e4]@4 ~@3 a3@3 g4@2 ~@2 g3@2 a3@4 ~@3 a3@3 g4@2 e4@2 g3@2 [a3,e4]@4 ~@3 a3@3 g4@2 ~@2 d4@4, ~ g3@5 d4@3 ~@4 c#4@4 g3@5 ~@3 g3@5 d4@3 ~@4 c#4@4 ~@4 c#4@4 g3@5 ~@3 g3@5 g3 ~, ~@10 c#4@8 g3@9 e4@7 ~@10 d4@6 ~@9 e4@7 ~@10 d4@6 ~@9 e4@7 ~@10 d4@6 ~@9 e4@5, ~@14 d4@3 ~@4 c#4@4 ~@4 c#4@4 g3@5 ~@3 g3@5 d4@3 ~@4 c#4@4 ~@4 c#4@3]/8", // A5
  B: "c#5@2 d5 c#5 b4@2 c#5 b4 a4@2 d5 ~@3 f#3@2, [a3,a4] [g3,g4] f#4@2, ~@4 f#3@3 ~, ~@3 d5", // A G
  C: "a4@2 d5 ~@3 g3@2 a4@2 d5 ~@3 f#4 g4, g4 ~, g3@3 ~ [f#3,f#4]@3 g3, ~ d5 ~ d5", // F#
  D: "a4@2 d5 ~@3 g3@2 a4@2 d5 ~@3 f#4 g4, g4 ~, g3@3 ~ [d3,f#4]@3 g3, ~ d5 ~ d5", E: "[a3,c#4,e4,a4] [d4,e4,g4]",
  F: "[a3,c#4,e4,a4]@8 g4@3 f#4@3 [d4,e4,g4]@2, ~@4 [d4,e4]@3 ~", // A Em7 Dsus2
  G: "[~@5 a3@3 g4@2 e4@2 g3@2 [a3,e4]@4 ~@3 a3@3 g4@2 ~@2 g3@2 a3@4 ~@3 a3@3 g4@2 e4@2 g3@2 [a3,e4]@4 ~@3 a3@3 g4@2 ~@2 g3@2 a3@4 ~@3 a3@3 g4@2 e4@2 g3@2 [a3,e4]@4 ~@3 a3@3 g4@2 ~@2 g3@2 ~@2 d#5@2 e5 d#5 c#5@2 d#5 c#5 b4@2 e5 ~@3 g#3@2, ~ g3@5 d4@3 ~@4 c#4@4 g3@5 ~@3 g3@5 d4@3 ~@4 c#4@4 ~@4 c#4@3 [b3,b4]@2 ~@6, ~@10 c#4@8 g3@9 e4@7 ~@10 d4@6 ~@9 e4@7 ~@10 d4@6 ~@9 e4@7 ~@6 g#4@8, ~@14 d4@3 ~@4 c#4@4 ~@4 c#4@4 g3@5 ~@3 g3@5 d4@3 ~@5 e5@2, ~@47 a3@2 ~ [a3,a4]@2 g#3@3 ~]/7", // A5 B A
  H: "b4@2 e5 ~@3 a3@2 b4@2 e5 ~@3 g#4 a4, a4 ~, a3@3 ~ [g#3,g#4]@3 a3, ~ e5 ~ e5", // G#
  I: "d#5@2 e5 d#5 c#5@2 d#5 c#5 b4@2 e5 ~@3 g#3@2, [b3,b4] [a3,a4] g#4@2, ~@4 g#3@3 ~, ~@3 e5", // B A
  J: "b4@2 e5 ~@3 a3@2 b4@2 e5 ~@3 g#4 a4, a4 ~, a3@3 ~ [e3,g#4]@3 a3, ~ e5 ~ e5", // E
})).s("gm_epiano2").gain(0.36)

// other · piccolo · Asus2
const piccolo = note(`<
  ~@56
  [[a5,b5] a5 c#6 a5 e6 a5 c#6 a5 d6 g5!3 f#5 g5 a5 b5]
  [a5!2 c#6 a5 e6 a5 c#6 a5 d6 g5!2 f#5 e5 f#5 g5 b5]
  [a5!2 c#6 a5 e6 a5 c#6 a5 d6 g5!3 f#5 g5 a5 b5]
  [a5!2 c#6 a5 e6 a5 c#6 a5 d6 g5!2 f#5 e5 f#5 g5 ~]
  ~@35
>`).s("gm_piccolo").gain(0.32).pan(0.6)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@19 A B C D E F G D H I J K@2 L M N@3 O P Q R S T U I J K@2 V W X@2 ~@8 Y ~ Z AA AB AC AD AE AF@2 AG AH AI@2 AJ AK AL
  AM AN AO AP@2 AQ@2 AR@2 AS@2 AT AU@2 ~@4
>`.pickRestart({
  A: "~@12 a3@3 b3", B: "a3@3 ~@7 a3@2 g3@2 a3 ~", C: "d4 c#4 ~ a3@5 ~@4 a3@2 a3@2",
  D: "d4@2 ~ c#4@2 ~ b3@4 a3 ~ g3@2 a3 ~", E: "d4 c#4 ~ a3@5 ~@4 e4@2 d4@2", F: "c#4@2 ~@3 a3 g3 a3",
  G: "d4 c#4 ~ a3@4 ~@3 a3@2 a3@2 a3@2", H: "c#4 a3@2 a3@5 ~@2 d4 ~ d4@2 c#4@2", I: "c#4 ~ e4@3 ~ a4@8 d4 ~",
  J: "d4@2 e4@3 ~ g4@4 f#4@2 e4@2 d4@2", K: "[c#4@2 ~@2 e4@2 ~@2 f#4@2 g4@2 ~@2 e4@8 d4@7 ~@3]/2",
  L: "c#4@3 e4@2 ~ a4@7 ~ d4@2", M: "d4 e4 ~ g4@2 f#4 e4 d4",
  N: "[c#4 ~ e4 ~ f#4 g4 ~ e4@2 ~ e4 d4 e4 d4 ~ a3@3 ~@3 a3 g3 a3]/3", O: "d4@2 c#4 a3@5 ~@2 a3@2 a3@2 a3@2",
  P: "e4@2 ~ d4@2 ~ c#4 ~ b3@2 a3 ~ g3@2 a3 ~", Q: "d4 ~@2 c#4 ~@2 a3@3 ~ d4 ~ d4@2 c#4@2",
  R: "e4@2 e4@8 g4@2 f#4@2 e4 ~", S: "d4 c#4 ~ a3@5 ~@2 a3@2 a3@2 a3@2", T: "d4@2 ~ c#4@2 ~ b3@2 a3@2 g3@2 g3@2 a3 ~",
  U: "c#4 a3@2 a3@5 ~@2 d4@2 d4@2 c#4@2", V: "c#4@3 e4@2 ~ a4@7 ~ f#4@2", W: "g4!2 ~ g4@2 f#4 e4 d4",
  X: "[c#4 ~ e4 ~ f#4 g4 ~ e4@3 e4 d4 e4 d4 ~ a3]/2", Y: "f#4 e4!3 ~@4", Z: "~@2 e4!3 d4 c#4 d4",
  AA: "e4@2 e4 e4@3 ~@10", AB: "~@4 e4@2 e4@2 e4 d4@3 c#4@2 d4@2", AC: "e4@2 e4 e4@3 ~@4 e4@2 e4@2 d#4@2",
  AD: "d#4 ~ f#4@3 ~ b4@8 e4 ~", AE: "e4@2 f#4@3 ~ a4@4 g#4@2 f#4@2 e4@2",
  AF: "[d#4@2 ~@2 f#4@2 ~@2 g#4@2 a4@2 ~@2 f#4@8 e4@7 ~@3]/2", AG: "d#4@3 f#4@2 ~ b4@7 ~ g#4@2",
  AH: "a4!2 ~ a4@2 g#4 f#4 e4", AI: "[d#4 ~ f#4 ~ g#4 a4 ~ f#4@2 e4@2 ~@2 f#4!2 e4]/2", AJ: "d#4 ~@10 b4 c#5@2 b4@2",
  AK: "b4@3 a4 a4@6 g#4@2 f#4@2 e4@2", AL: "d#4 ~ f#4 ~ g#4 a4 ~ f#4", AM: "f#4@3 e4@2 f#4@2 e4",
  AN: "d#4 f#4@2 ~@2 b4 c#5 b4", AO: "b4@3 a4@2 g#4 f#4 e4", AP: "[d#4 ~ f#4 ~ g#4 a4 ~ f#4@3 f#4 e4 f#4 e4 ~ b3]/2",
  AQ: "[~@10 f#4@2 e4@2 a4@6 ~@6 f#4@3 ~@3]/2",
  AR: "[f#4@2 ~ a4 g#4@2 ~ f#4 e4@2 ~ d#4 e4 ~ f#4@4 b3@4 ~@4 e4@2 e4@2 d#4@2]/2",
  AS: "[b3@4 ~ f#4 e4 a4@3 ~@3 f#4@2 ~]/2", AT: "f#4@2 ~ a4 g#4@2 ~ f#4 e4@2 ~ d#4 e4 ~ f#4@2",
  AU: "[~@3 a4 g#4@2 ~ f#4 e4@2 ~ d#4 e4 ~ f#4@4 b3@4 ~@10]/2",
})).s("gm_overdriven_guitar").gain(0.71).pan(0.6)

// other · string ensemble 2
const string_ensemble_2 = note("<A@8 ~@66 B C B C B C B C B C B C B C B C ~@5>".pickRestart({
  A: "[~ [a1,a2]@127]/8", B: "~@2 b5 ~@2 b5 ~@2 b5 ~@2 b5 ~@4", C: "~@2 b5 ~@2 a5 ~@2 a5 ~@2 a5 ~@2 g#5 ~",
})).s("gm_string_ensemble_2").gain(0.59)

// other · brass section
const brass_section = note("<~@73 A B C B C B C B D E F E F E F E G H ~ H I J>".pickRestart({
  A: "~@14 g#4 ~", B: "f#4 b3 ~ f#4 b3 ~ f#4 b3 ~@6 d#4 ~", C: "e4 b3 ~ e4 b3 ~ e4 b3 ~@6 g#4 ~",
  D: "e4 b3 ~ e4 b3 ~ e4 b3 ~@6 [g#4,g#5] ~", // G#
  E: "[f#4,f#5] [b3,b4] ~ [f#4,f#5] [b3,b4] ~ [f#4,f#5] [b3,b4] ~@6 [d#4,d#5] ~", // F# B F# B F# B D#
  F: "[e4,e5] [b3,b4] ~ [e4,e5] [b3,b4] ~ [e4,e5] [b3,b4] ~@6 [g#4,g#5] ~", // E B E B E B G#
  G: "[e4,e5] [b3,b4] ~ [e4,e5] [b3,b4] ~ [e4,e5] [b3,b4] ~@8", H: "[b3,f#4,b4] ~@2 [b3,f#4,b4] ~@12",
  I: "~ [a3,a4] [g#3,g#4] [f#3,f#4] [e3,e4]@4 ~ [d#3,d#4] [e3,e4] [f#3,f#4] [e3,e4] [c#3,c#4] [a2,a3]@2", // A G# F# E D# E F# E …
  J: "[b2,b3] ~@7", // B
})).s("gm_brass_section").gain(0.66)

// other · brass section · soft notes · B5
const brass_section_soft = note(`<
  ~@90
  [~@6 [b3,f#4,b4] ~@2 [b3,f#4,b4] ~@2 [b3,f#4,b4] ~@2 [b3,f#4,b4]]
  ~
  [~@6 [b3,f#4,b4] ~@2 [b3,f#4,b4] ~@2 [b3,f#4,b4] ~@2 [b3,f#4,b4]]
  ~@2
>`).s("gm_brass_section").gain(0.39)

// drums · kick
const kick = s("bd").struct("<~@20 [x ~ x ~@4 x ~@3 x ~@4]!74 ~>").gain(0.66)

// drums · snare
const snare = s("sd").struct("<~@20 A@7 B A@11 C A@3 B A@50 ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@6 x!2 ~@3", C: "~@4 x ~@7 x ~ x!2",
})).gain(0.59)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@20 A B A B A B A B A B A B A B A B A B A@3 B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A@2 ~
>`.pickRestart({
  A: "~@9 x ~@6", B: "~@9 x ~@5 x",
})).gain(0.39)

// drums · low tom
const low_tom = s("lt").struct("<~@27 A ~@15 A ~@26 B ~@3 C ~@3 B ~@3 B ~ B ~ B A B A B A B D E>".pickRestart({
  A: "~@15 x", B: "x!2 ~@6", C: "x!3 ~@5", D: "~@7 x", E: "x",
})).gain(0.66)

// drums · hihat
const hihat = s("hh").struct("<~@8 A@12 B@7 C B@15 C B@21 D B@27 E ~>".pickRestart({
  A: "x!5 ~ x ~ x!5 ~ x ~", B: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~", C: "x!5 ~@3", D: "x ~ x ~ x ~ x ~ x!3 ~ x ~@3",
  E: "x!4",
})).gain(0.39)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@8 A@12 B@7 ~ B@15 ~ B@21 C B@27 ~@2>".pickRestart({
  A: "~@5 x ~ x ~@5 x ~ x", B: "~@7 x ~@7 x", C: "~@7 x ~@8",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@27 A ~@15 A ~@7 B ~@3 B ~@3 C ~ B ~@3 D ~@3 B ~@3 B ~@3 B ~@3 B ~ B ~ B ~ E ~ E ~ E ~ F ~
>`.pickRestart({
  A: "~@7 x", B: "~@14 x!2", C: "~@13 x!3", D: "~@15 x", E: "~@13 x!2 ~", F: "~@13 x ~@2",
})).gain(0.66)

// drums · open hat
const open_hat = s("oh").struct("<~@8 A@19 ~ A@15 ~ A@7 ~ A@13 ~ A@27 ~@2>".pickRestart({
  A: "~@15 x",
})).gain(0.52)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@27 A ~@15 A ~@7 A ~@3 B ~@5 B ~@3 C ~@3 B ~@3 B ~@3 B ~@3 B ~ B ~ B ~@9
>`.pickRestart({
  A: "~@12 x!2 ~@2", B: "~@13 x ~@2", C: "~@12 x!3 ~",
})).gain(0.66)

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

// drums · shaker
const shaker = s("sh").struct("<[x ~ x ~ x ~@2 x!2 ~ x ~ x ~ x ~]!8 ~@87>").gain(0.13)

// drums · guiro
const guiro = s("guiro:0").struct("<~@7 [x!4] ~@87>").gain(6.93)

stack(
  violin, bass, distortion_guitar, epiano2, piccolo, overdriven_guitar, string_ensemble_2, brass_section,
  brass_section_soft, kick, snare, snare_soft, low_tom, hihat, hihat_soft, mid_tom, open_hat, high_tom, crash, shaker,
  guiro
)

More by The Corrs