How do I create a custom ringtone for my iPhone? The iPhone has a very limited selection of default ringtones.

How do I create a new ringtone for my iPhone?
If the song/sound you want to use isn't already in your iTunes library, add it to your iTunes library first.
If you want to use just a part of the song/sound, right click it, select "Get Info", then "Options" tab, and enter a start and stop time there. Remember, ringtones can't be over 40 seconds!
On the File menu, select "Convert" > "Create AAC Version". If you don't have this option, go to Edit, Preferences, General tab, and click the Import Settings button. Make sure the import setting is set to "iTunes Plus" (AAC).
This will create a new file in your iTunes library. Delete it from your iTunes library now, but be sure to check "keep file" in the delete dialog so the file itself isn't removed, just the library entry.
Navigate to where the file was created on disk, somewhere like music\iTunes\iTunes Music\{artist}\{album}
Rename the file from .m4a to .m4r
Drag and drop this .m4r file into the Ringtones folder of your iTunes (or, just double-click it and iTunes will handle it automatically).
Sync your iPhone. Make sure that "Sync Ringtones" is selected in the phone sync options (mine was off by default).


After syncing, you can select your new ringtone in Settings, Sounds at the Custom section at the top.