Of course the Arduino needs a power supply or you can power it with USB but you may not want to keep a computer connected full time. The relay board probably needs a little more current than you can get from USB so it probably needs a power supply.
You may not want or need MIDI. MIDI is normally for music. MIDI is basically "sheet music for computers".
A MIDI file contains the "notes & timing" to play virtual instruments. You can play MIDI files on your computer I think Windows Midia Play can play MIDI files, or there is more advanced software with more realistic sounding virtual instruments.
Most background music on TV and in movies is now created from MIDI rather than being played on real instruments by real musicians. MIDI can sound like real instruments but it doesn't support lyrics & vocals.
So... If you are playing a MIDI file you can turn-on a relay and activate a light at the same time you activate a note from a particular virtual instrument. The lights will be perfectly synchronized and perfectly-controllable and you can get the same exact show every time.
Or, you could "play" a lighting sequence separately from the audio.
There is a stage lighting standard called DMX512 which is "similar" to MIDI, but it's actually designed for lighting, not music. You don't need DMX either, unless you want to use commercial DMX lights.
But if you are not using MIDI sound and you are playing regular music files it's more common to make the lights REACT to the sound/music rather than playing a pre-programmed lighting sequence.
That's very common... A lot of people make "music visualizers" (which are usually based on a spectrum analyzer concepts). That's very common... A lot of people make "music visualizers" (which are usually based on a spectrum analyzer concepts). Once you are getting "audio data" (either the loudness or the loudness plus the frequency information) you are only limited by your imagination.
If you make something that reacts to music you can make random variations so it reacts differently every time... I find that more interesting, but if you are running some kind of stage show, you usually want the same thing every time. Just as a simple example, you can make the red lights react to the bass for awhile, and then later the blue can react to the bass. Or, I made "VU meter" that randomly reverses (going "down" instead of "up" when the music gets louder and it randomly inverts so that louder turns more LEDs off instead of on, and it's got some other variations.
And a lot of people use NeoPixels (WS2812 LEDs) which are multi-colored and addressable (and you don't need drivers or relays). But if you want to control big strings of Christmas lights or other AC powered lights, relays are the better choice.
Just to get started, take a look at my World's Simplest Lighting Effect. It's mostly just a demonstration and it's "boring" but it works well and it can be used along with other effects.