If you’ve only been thinking about buying an XM radio, I highly encourage you to do so. My dad picked one up a few weeks ago, and after listening to his for a while I bought one as well. I purchased the XM PC Radio [XM PCR], which connects via USB and to power and control the radio and uses a line-out (ie amplified) output that can either plug into the line-in on your sound card or you can plug a pair of powered speakers right in to the radio.
It is sattelite radio so having an unobstructed view of the southern sky is preferred, but some larger cities have terrestrial repeaters set up so it isn’t required and I have found that the antenna will pick up the signal through a wall and roof in this house with no problem.
When it comes to price, I think it is worth the $9.99 a month ($6.99 for radio #2-6) to not be constantly disgusted with what is playing.
The best part? The PCR uses a USB to Serial driver so you can write your own software for it by just connecting to a particular COM port. Using the new SerialPort component in .NET 2.0 I’ve been able to write my own software in only 16 hours of work, basing my code off from a GPL’d Java project, JavaXM. Once I get the full beta of Visual Studio 2005 I will be releasing my code to the public. It’s no where near complete yet and probably won’t be by the time I release the code; but thats where the fun comes in. 🙂