I've tried Spotify, its great but their inability to upload your own music is a gamebreaker for me, since I listen to a decent amount of indie and obscure bands and songs
You can add custom music in the Spotify desktop client, and if you have a mobile device on the same network, it'll automatically upload it to that device as well. Not cloud based though.
Just tried it. My experience might be abnormal, but it seems glitchy and slow. A playlist that I already created with my offline songs synced with my phone, but playlist said 0 songs. No error messages, very unintuitive. Had to create a new playlist and add the songs again, still wasn't showing. Relaunched spotify on both devices two times and it finally showed up. And this is for ~20 songs. I wouldn't want to use this method on a big library.
Also, Spotify doesn't upload your music for streaming, its just a sync between your phone and computer that have to be on the same wifi, and keeps the songs downloaded on your phone. Wouldn't work for a collection bigger than your phones storage. I wouldn't even compare this to GPM.