With the iPhone's built-in iPod music player, you'd think it would be easy to select a music file and set it as your default ringtone, or as a custom ringtone for one of your contacts. But as you've probably already discovered, it doesn't work that way.
Sure, you can right-click on a music file that you've purchased from iTunes and select "Create Ringtone", but you'll be charged another 99 cents for the conversion. Not cool, imho.
Fortunately, iTunes has everything you need to create your own custom ringtones from music you already own, and without paying any money. Here's how to do it using iTunes 8.0.2 (will also work with earlier versions, but the screens and menu names might be slightly different):
1. Configure iTunes to convert music to AAC format
AAC is the standard ringtone music file format, and you tell iTunes to use this format by configuring it's Import Settings (the same settings you use when importing music from a CD).
Open iTunes and select the "Edit" >> "Preferences" menu.
Click the "Import Settings" button and choose "AAC Format".
2. Trim the song length
Music files that are converted to ringtone format will not be recognized by your iPhone if they're longer than 35 seconds.
Select the song in iTunes that you want to convert to a ringtone, and select "Get Info" from the pop-up menu. Select the "Options" tab and change the Stop Time to 0:35.
This step must be completed before attempting the next step, or the file length will be too long.
3. Convert the song to AAC format
Right-click on the song in iTunes, and select "Create AAC Version".
iTunes will create a copy of this song in AAC format, but it will be trimmed to 35 seconds.