Strudelify

All in a Day

The Corrs

KeyB♭ majorTempo91 bpm
0:00/0:00
// All in a Day — The Corrs
// 91 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 84 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Steel guitar.
setcpm(91/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 · piccolo · "Backup (piccolo)"
const piccolo = note(`<
  ~@23 A ~ B ~ A ~ C@3 ~@4 D E ~@2 D F ~ A ~ B ~ A ~ C@3 ~@10 G ~ H ~ I J@2 K@2 L@2 M@2 L@2 K@2 J@2 ~@3
>`.pickRestart({
  A: "eb5@2 d5@4 eb5@2 d5@7 ~", B: "eb5 d5@3 ~@4", C: "[~@10 c5@3 ~ c5@16 bb4@6 ~@12]/3", D: "c5 d5", E: "bb4@8 a4@7 ~",
  F: "bb4@8 a4@5 ~@3", G: "~@2 f5@2 eb5 eb5@3", H: "~@4 f5@4 eb5@2 eb5@5 ~", I: "~@2 bb4 c5", J: "[d5@14 c5@5 ~@13]/2",
  K: "[d5@6 c5@6 a4@6 bb4@5 ~ c5@4 d5@3 ~]/2", L: "[d5@7 c5@3 ~@6]/2", M: "[d5@6 c5@6 a4@6 bb4@4 ~@2 c5@4 d5@3 ~]/2",
})).s("gm_piccolo").gain(0.3).pan(0.4)

// other · ocarina · "Backup (ocarina)"
const ocarina = note(`<
  ~@23 A ~ A ~ A ~ B@3 ~@4 C D ~@2 C E ~ A ~ A ~ A ~ B@3 ~@14 F G@2 H@2 G@2 H@2 G@2 H@2 G@2 ~@3
>`.pickRestart({
  A: "eb5 f5@2 ~@5", B: "[~@10 c5@3 ~ c5@16 bb4@6 ~@12]/3", C: "eb5 f5", D: "d5@8 c5@7 ~", E: "d5@4 c5@3 ~",
  F: "~@8 bb5@4 c6@3 ~", G: "[d6@7 c6@3 ~@6]/2", H: "[g5@5 ~ f5@6 d5@6 f5@4 ~@2 bb5@4 c6@3 ~]/2",
})).s("gm_ocarina").gain(0.27).pan(0.6)

// chords · synth strings 1 · "Strings/Syn strings"
const synth_strings_1 = note(`<
  ~@2 A B A B A B A B A B A B A B A B A B A B C D C E C D C F A B A G A B A B A B A B C D C E C D C F A B A B A B A B A
  B A B H I H I ~ A B A B A B A B A B A B A B J ~@2
>`.pickRestart({
  A: "[c4,eb4,g4,bb4] [d4,f4,a4,c5]", B: "[d4,g4,bb4,d5] [c4,f4,a4,c5]", C: "[f3,ab3,c4] [ab3,c4,eb4]",
  D: "[f3,bb3,d4]", E: "[f3,bb3,d4]@2 [g3,bb3,eb4] [bb3,d4,f4]", F: "[f3,bb3,d4] [g3,c4,f4]", G: "[d4,g4,bb4,d5] ~",
  H: "f2 ab2", I: "bb2", J: "[c4,eb4,g4,bb4] ~",
})).s("gm_synth_strings_1").gain(0.26)

// bass · fretless bass
const bass = note(`<
  ~ A B C D E B C D E B C D E B C D E B C D E F G H I H J H K B C D L B C D E B C D E F G H I H J H K B C D E B C D E B
  C D E ~@5 B C D E B C D E B C D E B C M ~@2
>`.pickRestart({
  A: "~@10 c1 d1 ~ d1 c1@2, ~@6 f1 ~", B: "c1@5 ~@2 c1 f1 ~ f1@3 ~ f1@2", C: "eb1@6 ~ eb1 f1!3 ~ f1 ~ f1!2",
  D: "c1@5 ~@2 c1 f1 ~ f1 ~ f1@3 ~", E: "g1@5 ~@2 g1 f1!3 ~ f1 ~ f1 g1", F: "f1@4 ~@3 f1 ab1 ~ ab1@3 ~ ab1@2",
  G: "bb1@6 ~ ab1 bb1 bb1@2 ~ bb1@2 bb1!2", H: "f1@5 ~@2 f1 ab1 ~ ab1@3 ~ ab1@2", I: "bb1@5 ~ c2 db2 eb2@3 ~ bb1@4",
  J: "bb1@6 ~ ab1 bb1 bb1@2 ~ bb1 ~ bb1!2", K: "bb1@2 g2 g1", L: "g1@5 ~@2 g1 f1@2 ~@6", M: "c1@5 ~@11",
})).s("gm_fretless_bass").gain(0.56)

// chords · electric guitar jazz · "Jazz guitar/Picked bass"
const electric_guitar_jazz = note("<A@2 ~@82>".pickRestart({
  A: "[[g3,bb3]@3 ~ [g3,bb3] ~ [a3,c4]@4 ~@2 [a3,c4] ~ [bb3,d4]@4 ~@2 [bb3,d4]@2 [a3,c4]@4 [bb3,d4]@2 [a3,c4]@3 ~]/2", // Gm Am Bb Am Bb Am
})).s("gm_electric_guitar_jazz").gain(0.17).pan(0.4)

// bass · electric bass pick · "Jazz guitar/Picked bass"
const bass_2 = note("<~@33 A B ~@2 A B ~@13 C ~@7 C ~@23>".pickRestart({
  A: "~@7 bb2", B: "c3 ~@7", C: "~@6 c3 bb2 c3 ~ c3 bb2 c3@3 ~, ~@9 eb3@2 ~@5",
})).s("gm_electric_bass_pick").gain(0.21).pan(0.4)

// other · electric guitar clean · "Clean guitar"
const electric_guitar_clean = note(`<
  ~@2 A B C D ~@2 A B ~@2 A B ~@2 A B ~@2 A E@2 ~@7 A B F G ~@2 A B ~@2 A H I J K L M@2 N@2 A B A B A B A B A B A G ~@5
  A B F G A B F G A B F G A B ~@3
>`.pickRestart({
  A: "~ bb3 f4 g3@2 bb3 f4 a3", B: "~ bb3 f4 bb3 a3 bb3 f4 a3",
  C: "~ [bb3,g4] [f4,g4] f4@2 [bb3,eb4] [eb4,f4] [a3,d4], ~@6 g3@3 ~@7", D: "~ bb3 f4 bb3 a3@2 ~@2, d4",
  E: "[~@2 bb3@2 f4@2 bb3@2 a3@2 ~@6 [ab3,c4,f4]@9 ~@7, ~@15 f3@9 ~@8]/2", F: "~@2 bb3@2 f4@2 g3@3 ~ bb3@2 f4@2 a3@2",
  G: "~ bb3 f4 bb3 a3@2 ~@2", H: "~ bb3 f4 bb3 a3 ~@3",
  I: "c4 ~@2 c4 ~@3 bb3, [f3,ab3]@9 ~ bb3@4 ~@2, f4@4 f4@5 ~@3 eb4@4, ~ c4@2 ~ eb3@4", // Fm
  J: "~@3 f3 ~@2 bb3@2, bb2!2, ~ f3@2 ~@2 f3@3, ~@4 bb3@5 ~@7",
  K: "~@3 c4 ~@3 bb3, f3 eb3, ~ c4@2 ~@2 bb3@2 ~, ~@4 f4@5 ~@3 eb4@4",
  L: "~@8 bb3@5 ~@3, bb2@13 ~@3, ~@2 f3@4 f3@7 ~@3, ~ bb3 ~@2",
  M: "[~@3 c4 ~@7 f3@2 ~@2 f3, f3 eb3 bb2@2, ~ c4@2 ~@2 bb3@2 bb3@3 bb3@4 bb3@2, ~@4 f4@5 ~@3 eb4@4 ~@2 f3@4 ~@4 f3@4 ~@2]/2",
  N: "[~@3 bb3 ~@6 bb3@2 ~@4, f3 eb3 bb2 ~, ~ bb3@2 ~@2 bb3@2 bb3@3 ~@6, ~@4 f4@4 ~@4 eb4@5 ~ f3@6 ~@8]/2",
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.3)

// other · acoustic guitar steel · "Steel guitar"
const acoustic_guitar_steel = note("<~@65 A@2 ~@17>".pickRestart({
  A: "[~@4 [g3,c4,f4]@7 ~@5]/2", // Csus4
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.7)

// chords · overdriven guitar · "Driven guitar"
const overdriven_guitar = note("<~@4 A B ~@19 C D ~@18 C D ~@37>".pickRestart({
  A: "~ g4!2 f4@2 eb4!2 d4", B: "d4", C: "~@2 [eb3,g3,bb3] [d3,f3,bb3]", D: "[f3,ab3,c4]@7 ~@9",
})).s("gm_overdriven_guitar").gain(0.39).pan(0.6)

// chords · epiano1 · "Rhodes"
const epiano1 = note("<~@22 A B A ~ C@2 D ~@13 A B A ~ C@2 D ~@35>".pickRestart({
  A: "[f4,ab4,c5]", B: "~@6 [bb4,d5] ~, ~@3 f4", C: "[[f4,ab4,c5]@7 [f4,bb4,d5]]/2", D: "[f4,ab4,c5]@15 ~",
})).s("gm_epiano1").gain(0.3).pan(0.7)

// other · violin
const violin = note("<~@30 A B C@2 ~@2 A D ~@5 E F ~@2 E F ~@3 G@2 H@8 I ~@4 A B ~@6 H@6 J ~@2>".pickRestart({
  A: "~@2 bb4@2 c5@2 bb4@2 c5 ~ c5 ~ c5@2 bb4@2", B: "c5@2 bb4 c5 bb4@2 a4@2 a4@6 ~@2",
  C: "[c5@2 [g5,a5] ~ g5@2 f5 eb5 d5@5 eb5 [c5,d5] ~ c5@8 ~@8, ~@4 a5 ~@10 bb4@2 ~@15]/2", // Gsus2 Csus2
  D: "c5@2 bb4 c5 bb4@2 a4 ~ a4@6 ~@2", E: "~@6 f4 g4", F: "ab4@11 ~@5",
  G: "[c5@2 g5 ~ g5@2 f5 eb5 d5@5 [d5,eb5] c5 ~ c5@12 ~@4, ~@15 bb4@2 ~@15]/2", // Ebmaj7
  H: "[c5@2 g5 ~ g5@2 f5 ~ d5@5 eb5 d5 ~ c5@2 g5 ~ g5@2 f5 g5 bb5@2 d5 ~ d5 eb5 [c5,d5] bb4, ~@7 eb5@2 ~@6 bb4@2 ~@15]/2", // Csus2
  I: "c5", J: "c5 ~@7",
})).s("gm_violin").gain(0.36).pan(0.4)

// chords · lead 8 bass lead · "Bass+lead/Koto"
const lead_8_bass_lead = note("<~@14 A B A B A B A B ~@12 A B A B A B A B ~@12 A B A B A B A B ~@22>".pickRestart({
  A: "[eb4,bb4] ~@3 [d4,a4] ~@3", B: "[d4,g4] ~@3 [c4,f4] ~@3",
})).s("gm_lead_8_bass_lead").gain(0.15).pan(0.2)

// chords · koto · "Bass+lead/Koto"
const koto = note(`<
  ~@62
  [~ ab4 c5 f5 ~@2 c5 f5 ~ g4 ~ eb5 ~ g4 ~ eb5, f4 ~ f4 ~ eb4 ~ eb4 ~, ~@5 ab4@2 ~@3 bb4@2 ~@2 bb4@2]
  [~ f4 bb4 d5 ~@3 d5 ~@3 d5 ~@3 d5, d4@2 ~@2 d4@2 bb4@2 ~ f4@2 ~ d4@2 bb4@2, ~@5 f4@2 ~ d4@2 bb4@2 ~ f4@2 ~]
  [~ ab4 c5 f5 ~@3 f5 ~ g4 ~ eb5 ~ g4 ~ eb5, f4 ~ f4 c5 ~ bb4 ~ bb4, ~@5 ab4@2 ~ eb4@2 ~@2 eb4@2 ~@2]
  [~@2 bb4 d5 ~@2 bb4 d5 d4 ~ bb4 d5 d4 ~ bb4 d5, d4 ~ d4 ~@5, ~ f4@2 ~@2 f4@2 ~@2 f4@2 ~@2 f4@2 ~]
  [~@2 bb4 d5 ~@2 bb4 d5 ~@8, d4 ~ d4 ~@5, ~ f4@2 ~@2 f4@2 ~@9]
  ~@17
>`).s("gm_koto").gain(0.12).pan(0.2)

// chords · lead 8 bass lead · "Bass+lead/Shamisen"
const lead_8_bass_lead_2 = note("<~@14 A B A B A B A B ~@12 A B A B A B A B ~@12 A B A B A B A B ~@22>".pickRestart({
  A: "~@2 [eb4,bb4] ~@2 [eb4,bb4] ~@4 [d4,a4] ~@2 [d4,a4] ~@2", // Eb5 D5
  B: "~@2 [d4,g4] ~@2 [d4,g4] ~@4 [c4,f4] ~@2 [c4,f4] ~@2", // G5 F5
})).s("gm_lead_8_bass_lead").gain(0.15).pan(0.8)

// other · shamisen · "Bass+lead/Shamisen"
const shamisen = note(`<
  ~@62
  [~ ab4 c5 f5 ~ ab4 c5 f5 ~ bb4 eb5 ~ bb4 eb5 eb4 bb4, f4@2 ~@2 f4@2 ~@2 eb4@2 ~ eb4@2 ~@3]
  [d4 f4 bb4 f5 ~ bb4 f5 f4 f5 f4 eb5 f4 d5 f4 c5 f4, ~@2 f4 ~@5]
  [~ ab4 c5 f5 ~ ab4 c5 f5 eb4 bb4 eb5 eb4 bb4 eb5 eb4 bb4, f4 ~ f4 ~@5]
  [d4 ~ bb4 f5 f4 bb4 ~@10, ~ f4@2 ~@13]
  ~@18
>`).s("gm_shamisen").gain(0.15).pan(0.8)

// other · woodblock
const woodblock = note(`<
  ~
  [~@4 d5 ~ g4 ~@5 d5 ~ g4 ~]
  ~@60
  [c4 ~@2 c4 c4@2 ~ c4 c4@2 ~ c4 c4@2 ~ c4]
  [c4 ~@2 c4 c4@2 ~ c4 d4 ~@2 d4 e4@2 ~ e4]
  [c4 ~@2 c4 c4@2 ~ c4 c4@2 ~ c4 c4@2 ~@2]
  ~@19
>`).s("gm_woodblock").gain(0.11).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B A B A B A B A B A B A B A B A B A C 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 ~@5 B A B A B A B A B A B A B A B ~@2
>`.pickRestart({
  A: "x ~@6 x!2 ~ x ~@5", B: "x", C: "x ~@6 x",
})).gain(0.35)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 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 C 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 ~@5 B A B A B A B A B A B A B A ~@3
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~@3 x", C: "~ x ~ x ~@4",
})).gain(0.3)

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

// drums · tambourine
const tambourine = s("tb").struct("<~@2 A@4 ~@16 A@11 B ~@7 C A@20 ~@5 A@14 D ~@2>".pickRestart({
  A: "x!16", B: "x!9 ~@7", C: "~@10 x!6", D: "x!2 ~@14",
})).gain(0.2)

stack(
  piccolo, ocarina, synth_strings_1, bass, electric_guitar_jazz, bass_2, electric_guitar_clean, acoustic_guitar_steel,
  overdriven_guitar, epiano1, violin, lead_8_bass_lead, koto, lead_8_bass_lead_2, shamisen, woodblock, kick, snare,
  hihat, crash, tambourine
)

More by The Corrs