I use
Ringdroid by Ringdroid Team to snip the parts I like from the songs in my music library. I keep it around 28-30 seconds. If there is a song I don't have and I'm not at my computer, I use
Music Search by Mobileworld. It searches download sites for a song, and some sites take longer to downolad than others.
Another one to look into is
Ringtones by Sharetones by DJ Nitrogen. It searches your songs on your phone, then finds others who have already made ringtones for your songs and lets you save them if you want. Some songs have no rintones, others may have 4 or 5 because different people liked different parts of a song. It also has the Ringdroid editor built into it so you can also snip your own songs.
http://www.androlib.com/android.application.com-nitrogen-android-jtmt.aspx