Open iTunes and go to iTunes/Preferences:
Under "Advanced" change the "Import Using:" to "AAC Encoder":
Find the song that you want to make a ringtone with. You CAN'T use an iTunes download. (If you have an iTunes song that you want to use, you can burn it to a cd and re-import it to make it a regular mp3)
Once you've found the song you want to use, figure out which 20 seconds you want your ringtone to be. Remember the starting and stopping points in the song.
Now, right click on the song and click "Get Info":
Under "Options" check the "Start Time" and "Stop Time" boxes and change the times to the 20 seconds you want for your ringtone:
Double click on the song to play it and make sure it starts and stops where you want it to. Make the adjustments you need.
Once you have the song starting and stopping where you want it to, right click on the song and click on "Convert to AAC":
This will create a seemingly identical song. Check the length to see which one is the ringtone:
Now, right click on the ringtone and click "Show in Finder" (it might be different for a PC. It might say something like "Show Folder" or something:
Once you've found the song file, click once on the name and change the m4a to m4r:
Press Enter and click "use m4r"
Once you've changed the format, go back into iTunes and delete the ringtone.... BUT do NOT delete from the computer!:
Now that the song is deleted from iTunes, double click on the new m4r file and it will open in your Rintones Section of your iTunes. Make sure your ringtones section syncs with your phone and you should have ringtones.
Once you have the ringtone, go back to the original song file and UNcheck the start and stop times: