Microcontroller based music player
Not much pitfals here except quality of DAC+amplifiers.

From the digital side, all you need is libmad which is easy to compile for ARM, any micro with hardware multiplication (Cortex M3) with at least 32kb of SRAM (48-64kb is easier &amp; better). For MP3 decoding with hardware multiplication you need clock of some 20-40Mhz+. No RTOS/Linux needed for libmad.

Another approach might be using weaker micro (like AVR) with hardware MP3 decoder - VS1011 and later. They have builtin DAC, and therefore easier to work with.
The VS1011 also accepts PCM, so that you bypass the MP3 decoder, and just use the DAC.

Accessing IDE is another topic, which should not be big of an issue, but can't recommend specific library. I would prefer to just use SD cards - they are very easy to interface, and even 32Gb cards are not too expensive.