Strudelify

No Frontiers

The Corrs

KeyG majorTempo130 bpm
0:00/0:00
// No Frontiers — The Corrs
// 130 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "Piano" named as a piano, played on piano (its acoustic guitar steel patch is not one)
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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.

// bass · acoustic bass · "Bass"
const bass = note(`<
  ~@2 A B C@2 D E C F ~@16 G F H E C F G@2 ~@16 D@2 F I E@2 G@2 D@2 F I E@2 G F H E C F G@2 D F ~@16 D@2 F I E@2 G@2 D@2
  F I E@2 G@2 D@2 F I E@2 G F H E C F G F H E C F G F H E C F G F H E C F ~ J@2
>`.pickRestart({
  A: "c2@3 g1", B: "b1@3 f#1", C: "a1@3 e2", D: "g2@3 d2", E: "e2@3 b1", F: "d2@3 a1", G: "c2@3 g2", H: "b1@3 f#2",
  I: "c2@3 f#2", J: "[c2@15 ~]/2",
})).s("gm_acoustic_bass").gain(0.28).pan(0.6)

// chords · piano
const piano = note(`<
  ~@2 A B C D E F G H I J K D L M G N O J P Q R S Q T O U V W X T Y@2 Z B C Q R AA Q H I AB C X R M Q U AC AD AE AF AG@2
  AH@2 AI@2 N AJ AG@2 A AK B M X N AL A L T AM J P AN AO AP AQ N AM B X@2 R W K AR AS@2 AK AT AU@2 AV AW AC AD N AX AG@2
  AH@2 AI@2 AE AY AG@2 A U V S G U O T AZ AA X U A AK V S P U AM N B AP G T A BA@2
>`.pickRestart({
  A: "~@7 [g3,g4], [c4,e4] ~, c3 e3 [c3,c4] [e3,e4], ~ g3@2 g3@2 [g3,d4]@2 ~", // G C E G5
  B: "~@7 f#3, b2, ~ d3@2 d3@2 f#3@2 ~, ~ f#3 b3 d3",
  C: "~ e3 ~ e3 [a2,a3] ~ [c3,c4] [e3,e4], [a3,c4]@3 ~@5, a2@2 [c3,e4]@2 ~ [e3,b3]@2 ~", // A C E Am C E5
  D: "a2 e3 c3 e3 a2 e3 ~ [e3,c4], [g3,c4]@6 [c3,a3] ~, ~@13 b3@2 ~", // C C5 F
  E: "~@7 [d3,d4], [g3,b3] ~, g2 b2 [g2,g3] [b2,b3], ~ d3@2 d3@2 [d3,a3]@2 ~", // D G B D5
  F: "~@6 e4 g4, e3, ~ g3@7, ~ b3 g4 ~, ~@3 e4@2 b3@3", G: "~@3 e3 ~@3 a3, c4@5 a3@2 ~, a2 c3!2 e3, ~ e3@2 ~ e4@4",
  H: "~@7 f#4, d3@2 a3@3 a3@3, ~ f#3@2 c4@2 ~ c4@2, ~@2 f#4 ~", I: "~@6 c4 e4, c3, ~ e3@7, ~ g3 e4 ~, ~@3 c4@2 g3@3",
  J: "~@7 [f#3,f#4], [b3,d4] ~, b2 d3 [b2,b3] [d3,d4], ~ f#3@2 f#3@2 [f#3,c#4]@2 ~", // F# Bm B D F#5
  K: "~@7 [e3,e4], [a3,c4] ~, a2 c3 [a2,a3] [c3,c4], ~ e3@2 e3@2 [e3,b3]@2 ~", // E Am A C E5
  L: "~@7 d3, g2, ~ b2@2 b2@2 d3@2 ~, ~ d3 g3 b2", M: "e3 b3 g3 b3 e3 b3 ~ [b3,g4], [e4,g4]@6 [g3,e4] ~, ~@13 f#4@2 ~",
  N: "~@7 a3, d3, ~ f#3@2 f#3@2 a3@2 ~, ~ a3 d4 f#3", O: "~@7 g3, c3, ~ e3@2 e3@2 g3@2 ~, ~ g3 c4 e3",
  P: "a2 e3 c3 e3 a2 e3 ~ [e3,c4], [a3,c4]@6 [c3,a3] ~, ~@13 b3@2 ~", // C Am F
  Q: "~@6 a3 c4, a2, ~ c3@7, ~ e3 c4 ~, ~@3 a3@2 e3@3",
  R: "~ d3 ~ d3 [g2,g3] ~ [b2,b3] [d3,d4], [g3,b3]@3 ~@5, g2@2 [b2,d4]@2 ~ [d3,a3]@2 ~", // G B D G Bm D5
  S: "~@7 b3, e3, ~ g3@2 g3@2 b3@2 ~, ~ b3 e4 g3",
  T: "d3 a3 f#3 a3 d3 a3 ~ [a3,f#4], [d4,f#4]@6 [f#3,d4] ~, ~@13 e4@2 ~", // D
  U: "~@7 f#4, d3@2 a3@3 a3@3, ~ f#3@2 d4@2 ~ d4@2, ~@2 f#4 ~", V: "~@6 b3 d4, b2, ~ d3@7, ~ f#3 d4 ~, ~@3 b3@2 f#3@3",
  W: "~ b3 ~ b3 [e3,e4] ~ [g3,g4] [b3,b4], [e4,g4]@3 ~@5, e3@2 [g3,b4]@2 ~ [b3,f#4]@2 ~", // E G B Em G B5
  X: "~@7 e3, a2, ~ c3@2 c3@2 e3@2 ~, ~ e3 a3 c3",
  Y: "[~@15 e4, c3@7 ~ c3@8, ~ e3@7 ~ e3@7, ~ g3 e4 c4 ~ g3 e4 c4, ~@3 c4@2 g3@2 e4@4 c4@2 g3@3]/2",
  Z: "~@7 e4, c3@2 g3@3 g3@3, ~ e3@2 c4@2 ~ c4@2, ~@2 e4 ~",
  AA: "~@3 b3 ~@3 e4, g4@5 e4@2 ~, e3 g3!2 b3, ~ b3@2 ~ b4@4",
  AB: "~ f#3 ~ f#3 [b2,b3] ~ [d3,d4] [f#3,f#4], [b3,d4]@3 ~@5, b2@2 [d3,f#4]@2 ~ [f#3,c#4]@2 ~", // B D F# Bm D F#5
  AC: "~ b2 d3 b2 g3 d3 b2 d3, g2@5 ~@3", AD: "~ b2 d3 b2 g3 d3 b2 d3, g2@9 ~@7",
  AE: "~@6 d4 f#4, d3, ~ f#3@7, ~ a3 f#4 ~, ~@3 d4@2 a3@3",
  AF: "~@7 [f#3,f#4], [a3,d#4] ~, c3 d#3 [c3,c4] [d#3,d#4], ~ f#3@2 f#3@2 [f#3,d4]@2 ~", // F# Adim C D# D
  AG: "[~@15 g4, e3@7 ~ e3@8, ~ g3@7 ~ g3@7, ~ b3 g4 e4 ~ b3 g4 e4, ~@3 e4@2 b3@2 g4@4 e4@2 b3@3]/2",
  AH: "[~@15 g4, c3 c3, ~ g3@3 g4@2 ~ g4@4 e4 g4@2 e4@2, ~@2 c4@3 [g3,c4]@3 ~ g3@7, ~@3 e4@2 ~ e4@2 ~@2 c4@3 c4@3]/2", // C5
  AI: "[~@15 d4, g2 g2, ~ d3@3 d4@2 ~ d4@4 b3 d4@2 b3@2, ~@2 g3@3 [d3,g3]@3 ~ d3@7, ~@3 b3@2 ~ b3@2 ~@2 g3@3 g3@3]/2", // G5
  AJ: "c3 f#3 d#3 f#3 c3 f#3 ~ [f#3,d#4], [a3,d#4]@6 [d#3,c4] ~, ~@13 d4@2 ~", // D#m Adim Cm
  AK: "~@7 [a3,a4], [d4,f#4] ~, d3 f#3 [d3,d4] [f#3,f#4], ~ a3@2 a3@2 [a3,e4]@2 ~", // A D F# A5
  AL: "~ g3 ~ g3 [c3,c4] ~ [e3,e4] [g3,g4], [c4,e4]@3 ~@5, c3@2 [e3,g4]@2 ~ [g3,d4]@2 ~", // C E G C Em G5
  AM: "c3 g3 e3 g3 c3 g3 ~ [g3,e4], [c4,e4]@6 [e3,c4] ~, ~@13 d4@2 ~", // C
  AN: "~ e3 ~ e3 [a2,a3] ~ [c3,c4] [e3,e4], [g3,c4]@3 ~@2 [e3,b3]@2 ~, a2 [c3,e4] ~@2", // A C E C5 E5 C
  AO: "g2 d3 b2 d3 g2 d3 ~ [d3,b3], [g3,b3]@6 [b2,g3] ~, ~@13 a3@2 ~", // G Em
  AP: "~@7 g4, e3@2 b3@3 b3@3, ~ g3@2 e4@2 ~ e4@2, ~@2 g4 ~",
  AQ: "~@7 c4, a2@2 e3@3 e3@3, ~ c3@2 a3@2 ~ a3@2, ~@2 c4 ~",
  AR: "~@3 a3 ~@3 d4, f#4@5 d4@2 ~, d3 f#3!2 a3, ~ a3@2 ~ a4@4",
  AS: "[~@15 b3, g2@7 ~ g2@8, ~ b2@7 ~ b2@7, ~ d3 b3 g3 ~ d3 b3 g3, ~@3 g3@2 d3@2 b3@4 g3@2 d3@3]/2",
  AT: "~ f#3 ~ f#3 [c3,c4] ~ [d#3,d#4] [f#3,f#4], [a3,d#4]@3 ~@2 [f#3,d4]@2 ~, c3 [d#3,f#4] ~@2", // C D# F# Adim D D#m
  AU: "[~@15 b4, e3 e3, ~ b3@3 b4@2 ~ b4@4 g4 b4@2 g4@2, ~@2 e4@3 [b3,e4]@3 ~ b3@7, ~@3 g4@2 ~ g4@2 ~@2 e4@3 e4@3]/2", // E5
  AV: "~ e3 g3 e3 c4 g3 e3 g3, c3@5 ~@3", AW: "~ e3 g3 e3 c4 g3 e3 g3, c3@9 ~@7",
  AX: "~@6 c4 d#4, c3, ~ d#3@7, ~ f#3 d#4 ~, ~@3 c4@2 f#3@3",
  AY: "~@7 d#4, c3@2 f#3@3 f#3@3, ~ d#3@2 a3@2 ~ a3@2, ~@2 d#4 ~",
  AZ: "~@3 f#3 ~@3 b3, d4@5 b3@2 ~, b2 d3!2 f#3, ~ f#3@2 ~ f#4@4",
  BA: "[~@3 c4 g4 ~@3 c5@7 ~, c3@6 e4 g4@8 ~, ~ e3@14 ~, ~@2 g3@13 ~, ~@5 c4@10 ~]/2",
})).s("gm_piano").gain(0.38).pan(0.6)

// bass · acoustic guitar nylon · "Guitar"
const bass_2 = note(`<
  ~@2 A B C@2 D E C F A B C@2 D E C F A B C@2 D E C F A F B E C F G@2 A B C@2 D E C F A B C@2 D E C F H@2 F A I@2 G@2
  H@2 F A I@2 A F B E C F A@2 D F A B C@2 D E C F A B C@2 D E C F H@2 F A I@2 G@2 H@2 F A I@2 G@2 H@2 F A I@2 A F B E C
  F A F B E C F A F B E C F A F B E C F A G@2
>`.pickRestart({
  A: "c2", B: "b1", C: "a2", D: "g2", E: "e2", F: "d2", G: "[c2@31 ~]/2", H: "[g2@31 ~]/2", I: "[e2@31 ~]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.33).pan(0.3)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  ~@2 A B C@2 D E C F G H I@2 J G I K G H I@2 J G I K L M N E O M P@2 G H I@2 J G I K G H I@2 J G I K Q@2 M R S@2 T@2
  U@2 M R V@2 L M B W C X A@2 Y M G H I@2 J G I K G H I@2 J G I K U@2 M R V@2 T@2 U@2 X R S@2 T@2 Q@2 X R S@2 L X N E O
  X A M B E O X A X B E O X A M B W O M G Z@2
>`.pickRestart({
  A: "[c4,g4,e5,c6]", B: "[b3,d5,f#5,b5]", C: "[a3,c5,e5,a5]", D: "[g3,b4,g5,d6]", E: "[e3,g4,e5,b5]",
  F: "[d4,c5,f#5,d6]", G: "e4", H: "d4", I: "c4", J: "g4", K: "f#4", L: "[c4,e5,g5,c6]", M: "[d4,a4,f#5,d6]",
  N: "[b3,f#4,d5,b5]", O: "[a3,e4,c5,a5]", P: "[c4,e5,g5,c6]/2", Q: "[g3,b4,g5,d6]/2", R: "[c4,a4,d#5,c6]",
  S: "[e3,g4,e5,b5]/2", T: "[c4,g4,e5,c6]/2", U: "[g3,b4,d5,g5]/2", V: "[e4,g5,b5,e6]/2", W: "[e4,g5,b5,e6]",
  X: "[d4,f#5,a5,d6]", Y: "[g3,b4,d5,g5]", Z: "[[c4,g4,e5,e6,c7]@31 ~]/2",
})).s("gm_string_ensemble_2").gain(0.17).pan(0.7)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@2 A B C@2 D E C F G H I@2 J G I K G H I@2 J G I K L M N E O M P@2 G H I@2 J G I K G H I@2 J G I K Q@2 M R S@2 T@2
  U@2 M R V@2 L M B W C X A@2 Y M G H I@2 J G I K G H I@2 J G I K U@2 M R V@2 T@2 U@2 X R S@2 T@2 Q@2 X R S@2 L X N E O
  X A M B E O X A X B E O X A M B W O M G Z@2
>`.pickRestart({
  A: "[c3,g3,e4,c5]", B: "[b2,d4,f#4,b4]", C: "[a2,c4,e4,a4]", D: "[g2,b3,g4,d5]", E: "[e2,g3,e4,b4]",
  F: "[d3,c4,f#4,d5]", G: "e3", H: "d3", I: "c3", J: "g3", K: "f#3", L: "[c3,e4,g4,c5]", M: "[d3,a3,f#4,d5]",
  N: "[b2,f#3,d4,b4]", O: "[a2,e3,c4,a4]", P: "[c3,e4,g4,c5]/2", Q: "[g2,b3,g4,d5]/2", R: "[c3,a3,d#4,c5]",
  S: "[e2,g3,e4,b4]/2", T: "[c3,g3,e4,c5]/2", U: "[g2,b3,d4,g4]/2", V: "[e3,g4,b4,e5]/2", W: "[e3,g4,b4,e5]",
  X: "[d3,f#4,a4,d5]", Y: "[g2,b3,d4,g4]", Z: "[[c3,g3,e4,e5,c6]@31 ~]/2",
})).s("gm_string_ensemble_1").gain(0.18).pan(0.4)

// chords · acoustic guitar nylon · "8 bar gut verse"
const acoustic_guitar_nylon = note("<~@2 A@8 ~@129>".pickRestart({
  A: "[~@55 e3@4 ~@5, c3@6 c3@7 d3@2 d3@2 e3@3 g3@4 ~@2 g3@2 g3@3 d3 b2@5 d3@2 d3@2 e3@3 g3@4 ~@2 g3@2 g3@4 ~@8, ~ d3@4 d3@2 d3@2 d3@3 g3@4 a2@5 e3@2 e3@2 [d3,e3]@4 [d3,e3]@2 e3@2 d3@3 g3@4 a2@5 e3@2 e3@2 e3@4 e3@2 ~@9, ~ g3 g3@2 b2@3 b2@4 a2 [a2,c3]@3 [a2,c3]@4 b2@4 a2 a2@3 a2@4 ~, ~@3 d4@7 g3 d4@7 g3 c4@8 [c4,d4]@7 g3 d4@7 g3 c4@8 c4@8 ~@5]/8", // Dsus2 Am Csus2
})).s("gm_acoustic_guitar_nylon").gain(0.33)

// drums · rim
const rim = s("rim").struct("<[x!2] [x!4] ~@137>").gain(0.22)

stack(bass, piano, bass_2, string_ensemble_2, string_ensemble_1, acoustic_guitar_nylon, rim)

More by The Corrs