Apple Wiki
Apple Wiki

Based on How to make your own iPhone ringtones at CNET Australia iPhone Centre:

  1. Open iTunes and select Preferences... under the File menu.
  2. Make sure General is selected at top of window.
  3. Click Import Settings..., make sure Import Using: has AAC Encoder, click OK twice.
  4. Click Music node under Library nod on the left side pane.
  5. Select your favourite MP3 audio file.
  6. Right-click on this file in your library to bring up the context menu.
  7. Select Get Info
    This will open a new dialogue box showing various details about the audio file.
  8. Select the Options tab.
  9. Check the boxes next to both Start Time and Stop Time and enter the times you want your new ringtone to start and stop (the maximum length is 40 seconds) then click OK.
    This will return you to your music library.
    NOTE: It looks like you can enter start and stop time to the 1000ths of a second (0:00.nnn), so you can be very precise.
  10. Right-click (Cmd-click) on the same music file again and this time select Convert Selection to AAC.
    iTunes will process this briefly and insert the new ringtone-sized file under the original file in your library.
  11. Right-click (Cmd-click) on the newly created file and select: "Show in Windows Explorer (or Finder on a Mac)"
  12. A new dialogue box will open showing you the location of this file. Select the file and rename it, changing the file extension from ".m4a" to ".m4r". Windows will warn you that this change may make the file unstable, but continue anyway.
  13. Back in iTunes, delete the ringtone file you've created from your library (very important!).
  14. Import the renamed '.m4r' file into the Ringtones part of your library.
  15. Connect your iPhone and sync your playlist. You may have to manually drag the .m4r file into the Ringtones section on your iPhone. Make sure you have ringtones set to sync in the Ringtones part of your iPhone sync options.

With your iPhone synced this file is now ready to be used as a ringtone.

You can play your new ringtone on the iPhone at Settings→Sounds→Ringtone.