mp3 into iTunes
1. Find a ringtone. It has to be 45 seconds or less).
2. Download the ringtone to your desktop
3. Open iTunes and go to your Preferences (might be called Settings on Windows) > Advanced Tab > Importing sub-tab > Find where it says "Import Using" and set it to AAC encoder.
4. On a Mac, double click it and it will automatically add to your iTunes library and start playing. On a PC, it will most likely open WMP automatically, so just drag it to your iTunes library.
5. Find the rintone you just dragged to your iTunes library and right click it, then select "Convert to AAC."
6. It will create a duplicate of the ringtone in AAC format and should start playing it automatically.
7. Drag the file to your desktop. (Since the new AAC format ringtone starts playing automatically, it will have a speaker next to it, which makes it easy to determine which file you need to drag)
8. Delete the two copies of the ringtone from your general Music list (you don't have to, but I don't think you want ringtones randomly playing next time you do a song shuffle...)
9. See that ringtone you just dragged to your desktop? It should be "songname.m4a." Now, simply change the file extension to .m4r. You can leave the file name alone, or you can make it whatever you want, the important thing is that you change the extension to .m4r.
10. On a Mac, double click it and it will auto add to your Ringtones list in iTunes. On a PC, you may have to manually drag it to the list.
You're done. You now have custom ringtones on your iPhone for free, and they can be whatever sounds you can find... as long as they are shorter than 45 seconds.
I know it looks like a bunch of steps, but it isn't. The whole process takes maybe 30 seconds after you do it once or twice