Strudelify

Never Be the Same Again (feat. Lisa "Left Eye" Lopes)

Mel C

KeyG minorTempo80 bpm
0:00/0:00
// Never Be the Same Again (feat. Lisa "Left Eye" Lopes) — Mel C
// 80 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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.

// chords · acoustic guitar steel · "KEVIN SPAIN"
const acoustic_guitar_steel = note(`<
  ~ 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 B A B A B ~@12
  A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "g3@2 ~ d4@2 ~ f4@2 g3@2 ~ eb4@2 ~ bb3@2, ~@2 bb3@2 ~ g3@2 ~@3 bb3@2 ~ g3@2 ~",
  B: "bb3@2 ~ d4@2 ~ bb4@2 gb3@2 ~ d4@2 ~@2 g4, ~@2 f3@2 ~ f3@2 ~@3 bb3@2 ~ gb3@2 ~, ~@7 bb3",
})).s("gm_acoustic_guitar_steel").gain(0.41)

// bass · electric bass finger · "CRISIS"
const bass = note(`<
  ~ 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 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 ~
>`.pickRestart({
  A: "g1@4 ~@4 eb2 ~ eb2@3 ~@3", B: "bb1 ~ f1 ~",
})).s("gm_electric_bass_finger").gain(0.51)

// other · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@4 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@5
>`.pickRestart({
  A: "~@2 g5@2 g6@2 g5@5 f6@3 g5@2",
})).s("gm_lead_2_sawtooth").gain(0.14)

// other · vibraphone
const vibraphone = note(`<
  ~ A B A B A B A B ~@16 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 ~@12 A B A B A B A B A
  B A B ~
>`.pickRestart({
  A: "g4@2 bb4 eb4", B: "f4@7 ~ gb4@8",
})).s("gm_vibraphone").gain(0.33)

// chords · pad sweep
const pad_sweep = note("<~@25 A@2 ~@2 A@2 ~@2 A@2 ~@10 A@2 ~@2 A@2 ~@2 A@2 ~@18 A@2 ~@2 A@2 ~@2 A@2 ~@3>".pickRestart({
  A: "[[bb4,d5]@19 ~@13, g4 ~]/2", // Bb
})).s("gm_pad_sweep").gain(0.51)

// drums · kick
const kick = s("bd").struct(`<
  A B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B D B C B C B C B C B C B C B C B C B C B C B C
  B C B C B C B C B C B C B D B C B C B C B C B C B D E
>`.pickRestart({
  A: "x!16", B: "x ~@3 x!2 ~@2", C: "x ~@7 x!3 ~@5", D: "x ~@7 x!8", E: "x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct("<~ A@7 B A@15 B A@19 B A@11 B A@27 B ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@6 x!4 ~",
})).gain(0.8)

// drums · clap
const clap = s("cp").struct("<~ [~ x ~ x]!84 ~>").gain(0.8)

// drums · hihat
const hihat = s("hh").struct("<~ [x!8]!84 ~>").gain(0.8)

// drums · crash
const crash = s("cr").struct("<~@57 x ~@4 [~@3 x] ~@22 x>").gain(0.8)

stack(acoustic_guitar_steel, bass, lead_2_sawtooth, vibraphone, pad_sweep, kick, snare, clap, hihat, crash)