While you can convert songs to ringtones on iTunes for $0.99, you can just as easily do it for free with a few more clicks. you'll need an unprotected song in iTunes for this to work (that is, a .m4a or .mp3 file, not .m4p).
Here's how to turn any MP3 into a ringtone for free on both the iPhone and Android smartphones.
Right click on the track and hit "Get Info". Under the Options tab, set your Start Time and Stop Time to the correct values for the ringtone, and hit OK.
Right click on the song and choose "Convert Selection to AAC". If it says "Convert Selection to MP3" or "Apple Lossless" instead, head to iTunes' Preferences, hit Import Settings, and switch it to the AAC Encoder, and try again.
You should see the newly converted file pop up in iTunes, and it should be much shorter than the original. Right click on it and pick "Show in Windows Explorer" (or "Show in Finder" if you're on a Mac). Change the extension of the file from .m4a to .m4r.
Head back into iTunes and delete the shortened version of the song you just created. Since you changed the extension, iTunes won't be able to find the file and will just remove it from your library. Then go to File > Add File to Library and navigate to the .m4r file you just created. It should show up in the Ringtones section of iTunes.
The next time you sync your iPhone, your new ringtone should show up in Settings > Sounds > Ringtones. If you want to set different ringtones for specific contacts, you can head to the Contacts app, edit the contact you want to change, and choose a ringtone for them under "Ringtone".
If you want finer control over when your ringtone starts and ends, you can use GarageBand too, but only if you're on a Mac. The above instructions should work for users on both Windows and OS X.
Weka Maoni Yako Hapa