I have a very simple some coloured 5050 LED strips which provide a very colourful addition to Christmas. Lightshowpi (LSPi) is wonderful Raspberry Pi (RPi) software which analyses music and allows you to configure lights accordingly. I think most people use it with relays and big external displays but I prefer a small indoor spectacle when listening to Christmas songs. My LSPi setup tends to change each year and this years effort works well.
The Raspberry Pi has rubbish sound quality through the headphone jack. This year I attached a USB audio card which only cost about £5 and provides a signal quality which I can send through my hi-fi (is it still called that) to play pleasant sounding music. It is possible to spend a more money (£60-£130) on an RPi DAC HAT or high quality USB audio but this is quite acceptable to me.
All my music is accessible using the venerable linux music player daemon (MPD) on an RPi which has a share to network attached storage (NAS) and can stream radio stations. I use a web interface to mpd so I can select, play and manage music from a browser. LSPi is quite happy playing an http or icecast stream from MPD and I can direct its output to the USB audio card.
Previously I used bluetooth connection from RPi/MPD to my hifi but this makes synchronisation a little tricky as bluetooth introduces a selay of 2-3 seconds. When playing sound through the USB card LSPi synchronisation is much better and I can see the colours changing in time with the notes.
The 4 colour LED strip runs at 12V and requires three GPIO pin signals to control Red, Green and Blue output. The RPi can only provide 5V, limited current output so I have a simple setup with MOSFETs driving the LED strip with an external power supply.