Playing music and multiplexing LEDs

Hi, I want to make some kind of jukebox with a LED Matrix to show an equalizer or to display words. I just want to know, if this is possible with the arduino. I know that there is an mp3 shield but I couldn't really figure out how many pins it takes, I also don't know how many LEDs I need. I just want to know if this kind of stuff is possible with the Arduino, especially the thing with the music or if I should use a Raspberry Pi instead. I'm rather new to all this stuff and fighting my way through some Starter Kits. Cheers

I know that there is an mp3 shield

There is more than one. Which one are you considering?

I also don't know how many LEDs I need.

Do you want individual LEDs or a LED Matrix?

What do you expect to show on the LEDs or matrix? Words are not easy. You need to define the font for each character, and turn bunch of LEDs on at once. The matrix may handle a lot of the hard stuff for you.

If you want to show an equalizer, where are you going to get the data to display? The mp3 shield does not supply that information to the Arduino.

Playing music is easy if you have another circuit doing the hard stuff for you. There are many single-IC solutions that you feed data to and it decodes and plays it. There's no way you're going to pull off software decoding of MP3 on an Arduino, so really it's your only option.

I have a project that uses the Adafruit RGB LED Matrix as a spectrum analyzer. (Link: http://forum.arduino.cc/index.php?topic=190658.0) It uses the MSGEQ7 chip to read an analog input and give DC voltages for each of the seven bands. You just read these over an analog pin (with a strobe output to select which band you want to sample) and use the LED Matrix graphics library to draw your visual display. Text is supported with a few included fonts, but the resolution of the panel is only 32x16 (or 32x32). LCD panels will have higher resolution for the same price so that might be a better option.

Both of these tasks -- file reading / buffer filling and graphics -- are going to take considerable CPU time and memory. Maybe more than one 16MHz chip can do, depending on how much processing effort your particular display requires. You can go multi-chip and communicate via i2c, SPI, or TTL though.