Strudelify

Leave Me Alone

The Corrs

KeyC majorTempo120 bpm
0:00/0:00
// Leave Me Alone — The Corrs
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 4 "Backup II (chor. piano)" epiano2 (copy of ch 3 "Backup I (syn voice)" synth choir)
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level. 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.

// other · piano · "Lead"
const piano = note(`<
  A B@2 ~@8 C D E F@2 G H I@2 J ~ K@2 L@2 M@3 N@2 O@2 N@2 P Q P R S Q T U V L@2 K@2 J ~ M@3 N@2 O@2 W@2 X ~@12 L@2 Y Z@3
  N@2 O@2 AA@2 O@2 N@2 O@2 AA@2 O@2 N@2 O@2 AA@2 O@2 N@2 O@2 AA@2
>`.pickRestart({
  A: "d4@3 ~ c4@7 ~@2 c4@3", B: "[~ c4@4 d4@3 ~ d4@4 c4@5 e4@13 ~]/2", C: "~@4 c4@2 a3@9 ~",
  D: "d4@2 d4@2 d4@2 c4@2 a3@5 ~ d4@2", E: "e4@2 e4@2 e4@2 d4@2 c4@5 ~ d4@2",
  F: "[b3@3 ~ c4@3 ~ b3@2 a3@2 a3@6 c4@2 e4@5 ~ c4@2 d4@3 ~]/2", G: "d4@3 d4 d4@2 c4@2 c4@7 ~",
  H: "e4@2 f4@2 g4@2 c4@9 ~", I: "[~@4 d4@2 c4@4 b3@2 a3@2 g3@5 ~@13]/2", J: "~@2 d4@2 d4@2 d4 d4@3 e4@2 c4@3 ~",
  K: "[~@2 d4@2 d4@2 d4 d4@3 g4@2 f4@2 e4@5 ~@13]/2", L: "[~@2 d4@2 d4@2 d4 d4@3 e4@2 c4@7 ~@13]/2",
  M: "[~@2 d4@2 d4@2 e4@2 d4@2 c4@2 b3@2 a3@5 ~ e4@3 ~ e4@2 f4@4 d4@9 ~@9]/3",
  N: "[~@4 g4@3 ~ f4@2 e4@4 e4@7 ~ d4@9 ~]/2", O: "[~@4 e4@3 ~ e4@2 f4@4 d4@9 ~@9]/2", P: "e4@3 e4@3 c4@2 d4@5 ~ c4@2",
  Q: "d4@3 ~ d4@3 ~ c4@3 ~ c4@2 d4@2", R: "d4@3 ~ g4@3 ~ f4@2 e4@4 c4@2", S: "e4@5 ~ c4@2 d4@5 ~ c4@2",
  T: "e4@2 f4@2 g4@2 c4@2 e4@3 ~ d4@3 ~", U: "d4@5 ~ d4@2 e4@2 d4@2 c4@2 a3@2", V: "g3@3 ~@13",
  W: "[~@4 g4@3 ~ f4@2 e4@4 e4@7 ~ d4@5 ~ e4@3 ~]/2", X: "f#4@7 ~@9", Y: "~@2 d4 ~ d4@2 e4@2 d4@2 c4@6",
  Z: "[~@2 d4 ~ d4@2 e4@2 d4@2 c4@2 b3@2 a3@5 ~ e4@3 ~ e4@2 f4@4 d4@9 ~@9]/3",
  AA: "[~@4 g4@3 ~ f4@2 e4@4 e4@7 ~ d4@5 ~@5]/2",
})).s("gm_piano").gain(0.48)

// chords · synth strings 1 · "Chords (syn strings)"
const synth_strings_1 = note(`<
  A@3 B C D C E C D C F G H I J I K I L M L M L M L ~ J C N O E C N O F G H I J I P I L M L M L M L ~ F C N O E C N Q R
  S T@3 S U@3 ~@6 V@2 F C N O E C N Q F C N O E C N Q F C N O E C N Q F C N O E C N Q
>`.pickRestart({
  A: "[~@8 [d3,f3,a3,c4]@35 ~@5]/3", B: "[a3,c4,e4]@10 f3@5 ~", C: "[g3,b3,d4]@10 [f3,a3,c4]@5 ~",
  D: "[g3,e4]@10 [f3,a3]@5 ~", E: "e4@7 ~ f3@7 ~", F: "[a3,c4,e4]@7 ~ [f3,a3,c4]@7 ~",
  G: "[g3,b3,d4]@7 ~ [a3,c4,e4]@7 ~", H: "g3@7 ~ [f3,a3]@7 ~", I: "[g3,b3,d4]@15 ~", J: "[a3,c4,e4]@7 ~ f3@7 ~",
  K: "[c4,e4]@7 ~ [f3,a3,c4]@7 ~", L: "[d3,f3,a3,c4]@15 ~", M: "[e3,g3,b3,d4]@15 ~", N: "[g3,e4]@7 ~ [f3,a3]@7 ~",
  O: "[g3,b3,d4]@11 ~ [f3,a3,c4]@3 ~", P: "[c4,e4]@7 ~ [f3,a3]@7 ~", Q: "[g3,b3,d4]@7 ~ [f3,a3,c4]@7 ~",
  R: "[f#3,a3,d4]@15 ~", S: "[g3,c4,e4]", T: "[[f#3,d4] [c4,e4] [f#3,d4], a3]/3",
  U: "[[f#3,d4]@8 [c4,e4]@9 ~@7, a3@17 ~@7]/3", V: "[~ [g3,b3,d4]@3]/2",
})).s("gm_synth_strings_1").gain(0.3)

// chords · overdriven guitar · "Driven guitar"
const overdriven_guitar = note(`<
  ~@3 A B C B A B C B ~@16 A B C B A B C B ~@16 A B C B A B C B D E D F G H G I ~@9 A B C B A B C B A B C B A B C B A B
  C B A B C B A B C B A B C B
>`.pickRestart({
  A: "[a3,c4,e4]!2 ~@3 [f3,a3,c4]@2 [f3,a3,c4]", B: "[g3,b3,d4]!2 ~@3 [f3,a3,c4]@2 [f3,a3,c4]",
  C: "[g3,c4,e4]!2 ~@3 [f3,a3,c4]@2 [f3,a3,c4]", D: "[d3,f#3,a3]@13 ~@3", E: "[e3,g3,c4]@13 ~@3", F: "[e3,a3,c4]@7 ~",
  G: "[d3,f#3,a3]@7 ~", H: "[e3,g3,c4]@7 ~", I: "[e3,a3,c4]",
})).s("gm_overdriven_guitar").gain(0.36)

// other · electric guitar clean · "Clean guitar"
const electric_guitar_clean = note("<~@7 A B A C D E F G@2 H I J ~@16 D E F G@2 H I J ~@20 K@3 ~@42>".pickRestart({
  A: "c4 a3 g4 c4!2 a3 g4 c4", B: "d4 b3 g4 c4 d4 b3 g4 c4", C: "d4 b3 g4 d4!2 b3 g4 d4", D: "a3@2 c4@2 e4@3 ~ f3@7 ~",
  E: "g3@7 ~ e4@2 d4@2 c4@2 a3@2", F: "g3@7 ~ a3@7 ~", G: "[g3@7 ~ e4@2 d4@2 c4@2 a3@5 ~ e4@3 ~ f3@2 a3@2 c4@3 ~]/2",
  H: "g3@2 b3@2 d4@7 ~@5", I: "g3@2 c4@2 e4@3 ~ f3@2 a3@2 c4@3 ~", J: "g3@2 b3@2 d4@2 b3@5 ~@5", K: "~ e4 d4 c4",
})).s("gm_electric_guitar_clean").gain(0.3)

// chords · piano
const piano_2 = note("<~@3 A B C B D E C F ~@97>".pickRestart({
  A: "~@4 [a4,c5,e5]@2 [a4,c5,e5] [c5,e5] ~@8", B: "~@4 [g4,c5,e5]@2 [g4,c5,e5]!2 ~@2 [g4,b4,d5]@5 ~",
  C: "~@4 [g4,c5,e5]@2 [g4,c5,e5]!2 ~@8", D: "~@4 [a4,c5,e5]@2 [a4,c5,e5] [c5,e5]@4 ~@5",
  E: "~@4 [g4,c5,e5]@2 [g4,c5,e5] [c5,e5]@3 [g4,b4,d5]@5 ~", // C G
  F: "~@4 [g4,c5,e5]@2 [g4,c5,e5] [g4,c5,e5]@3 [g4,b4,d5]@5 ~", // C G
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "Fingered bass"
const bass = note(`<
  ~@3 A B C D A B C D E F G H E H I H J K L K M K N O A B C D A B C D E F G H E H I H J K L K M K N O A B C D A B C D P
  Q R S P T R U V W V W V W V ~@2 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D
>`.pickRestart({
  A: "a1!2 ~@3 f1@2 f1", B: "g1@2 g1@5 ~@3 f1@4 f1@2", C: "c2@2 c2@5 ~@3 f1@4 f1@2", D: "g1!2 ~@3 f1 ~ f1",
  E: "a1!4 f1!4", F: "g1!4 a1!4", G: "c2@2 c2@2 c2@2 c2@2 f1@2 f1@2 f1@3 ~", H: "g1!8", I: "c2!4 f1!4",
  J: "d1!3 d1@3 d1!2 ~@2 d1@2 d1@2 d1@2", K: "e1!4 e1@2 e1!2 ~@2 e1@2 e1@2 e1@2",
  L: "d1!4 d1@2 d1@2 d1@2 d1@2 d1@2 d1@2", M: "d1@2 d1!2 d1@2 d1@2 d1@2 d1@2 d1@2 d1@2",
  N: "d1!4 ~@2 d1!2 ~@2 d1@2 d1@2 d1@2", O: "e1@3 ~@13", P: "d1@4 ~@2 d1@7 ~@3", Q: "c2@4 ~@2 c2@7 ~@3",
  R: "d1@2 ~ d1@3 ~@2", S: "a1@2 ~ a1@3 ~@2", T: "c2@5 ~ c2@6 ~@4", U: "a1@4 ~@2 a1@3 ~@7",
  V: "a1@2 ~@2 a1@2 ~ a1@3 f1@2 ~@2 f1@2", W: "g1@2 ~@2 g1@2 ~ g1@3 f1@2 ~@2 f1@2",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · acoustic guitar steel · "Steel guitar"
const acoustic_guitar_steel = note(`<
  ~@7 A B C D ~@8 E F G F G F G H A B C D A B C D ~@8 G F G F G F G H A B C D A B C D ~@17 A B C D A B C D A B C D A B C
  D A B C D A B C D A B C D A B C D
>`.pickRestart({
  A: "~@4 [a4,c5,e5]@2 [a4,c5,e5] [c5,e5]@4 ~@5", B: "~@4 [g4,c5,e5]@2 [g4,c5,e5] [c5,e5]@3 [g4,b4,d5]@5 ~",
  C: "~@4 [g4,c5,e5]@2 [g4,c5,e5]!2 ~@8", D: "~@4 [g4,c5,e5]@2 [g4,c5,e5] [g4,c5,e5]@3 [g4,b4,d5]@5 ~",
  E: "[d4,f4,a4,c5]@3 [d4,f4,a4,c5] ~@2 [d4,f4,a4,c5]@5 ~@5", // Dm7
  F: "[e4,g4,b4,d5]@3 [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5]@5 ~@5", G: "[d4,f4,a4]@3 [d4,f4,a4,c5] ~@2 [d4,f4,a4,c5]@5 ~@5",
  H: "[e4,g4,b4,d5]@3 ~@13", // Em7
})).s("gm_acoustic_guitar_steel").gain(0.26)

// other · violin
const violin = note(`<
  ~@44 A B@2 C@2 D ~@2 E F G H I J ~ K L M N K L M N O ~@17 E F G H I J ~@2 E F G H I J ~@2 E F G H I J ~
>`.pickRestart({
  A: "~@6 a5 e5", B: "[g5@19 ~ f5@2 e5@5 ~ a5@2 e5@2]/2", C: "[g5@27 ~ a5@2 e5@2]/2", D: "g5@15 ~", E: "~@12 f5@3 d5",
  F: "e5@2 c5@2 g4@7 ~@5", G: "~@7 c5", H: "g5@5 ~ a5@2 g5@5 ~ a5@2", I: "g5@11 ~ f5@3 d5", J: "e5@2 c5@2 g4@3 ~@9",
  K: "f#4 a4!2 g4 a4@5 ~ c5 b4 c5 b4 a4 g4", L: "e4 a4!2 g4 a4@5 ~ c5 b4 c5 b4 a4 g4",
  M: "f#4 a4 ~ g4 a4@5 ~ c5 b4 c5 b4 a4 g4", N: "g4 e4 a4!2 g4 a4 b4 d5 e5 d5 c5 b4 d5 ~ c5 a4", O: "g4@7 ~@9",
})).s("gm_violin").gain(0.4)

// chords · pad sweep · "Sweep"
const pad_sweep = note("<~@74 A@3 ~@31>".pickRestart({
  A: "[~@23 [g5,b5,d6]@11 ~@14, ~@9 [g4,b4,d5]@25 ~@14]/3", // G
})).s("gm_pad_sweep").gain(0.24)

// drums · kick
const kick = s("bd").struct("<~@3 A@4 B@19 ~ B@23 ~ B@16 A@7 ~@2 B@32>".pickRestart({
  A: "x!4", B: "x!2",
})).gain(0.29)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A ~@3 A B@3 C B@7 C B@7 D B@7 C B@7 C B@7 D B@7 C B@7 C ~@7 E A B@7 C B@7 C B@7 C B@8
>`.pickRestart({
  A: "~@10 x!6", B: "~ x ~ x", C: "~@4 x ~@7 x ~ x!2", D: "x ~@9 x!6", E: "x",
})).gain(0.29)

// drums · clap
const clap = s("cp").struct(`<
  ~@8 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~@4 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@8
>`.pickRestart({
  A: "~@3 x",
})).gain(0.29)

// drums · hihat
const hihat = s("hh").struct("<~@7 [x!8]!19 x [x!8]!23 x [x!8]!24 ~ [x!8]!32>").gain(0.29)

// drums · crash
const crash = s("cr").struct("<~@7 A ~@19 A ~@7 A ~@15 A ~@24 A ~@7 A ~@7 A ~@7 A ~@7>".pickRestart({
  A: "x",
})).gain(0.29)

// drums · claves
const claves = s("clave:2").struct("<~@67 A B A B A B A ~@34>".pickRestart({
  A: "x ~@3 x ~@2 x ~@4 x ~ x ~", B: "x ~@3 x ~@2 x ~@4 x ~@3",
})).gain(1.91)

stack(
  piano, synth_strings_1, overdriven_guitar, electric_guitar_clean, piano_2, bass, acoustic_guitar_steel, violin,
  pad_sweep, kick, snare, clap, hihat, crash, claves
)

More by The Corrs