This is something that I have been doing for quite a long time now, even when I had my Palm Treo, and it is extremely easy to do on your computer.
What I use to make my ringtones with, is I download a program called Audacity, and when you use Audacity it may require you to download a plugin or install a plugin called Lame encoder

Basically, with this program you can import a MP3 file from your collection of music that you have paid for, and you can extract a certain part of the MP3 and turn that into a ringtone or a notification tone on your cellphone or tablet.
After you install Audacity, you can either import a MP3 or "drag" into into the stage.

Once you do that, you can play and select the part of the MP3 that you want to keep.

What I do once I select the part that I want to keep, is I go to Edit then Copy or [CTRL + C] for a keyboard shortcut, then in Audacity go to File - New and then paste the audio into a new audacity window. From here I can finely tune what I want to keep as a ringtone and then once I have it the way that I want it I can save it as a MP3, as File - Export Audio (this is where the Lame encoder comes into place).

I can save it directly to my phone if I have my phone plugged into my PC or I can save it to my Google Drive folder on my PC and then use the Drive AutoSync post that I made earlier to automatically download the ringtone to either one device or multiple devices that I have Drive Autosync installed on. I will usually have to reboot my phone for the new ringtone to show up to select (For Android there is a folder in the root that is called Ringtones. There is usually another folder called Notifications or it may be under Audio - Notifications for the notification tones). This will allow you to make your own ringtones for one or multiple devices without having to pay for ringtones or try to find the exact ones that you want.