overminer for Windows XP
1. Choose your music or sound (mp3)
2. Use audacity to cut the song to 40 seconds or less
3. Drag the song to itunes
4. Right click on the song in itunes and convert to AAC
5. Find the .mpa song in folder My DocumentsMy MusiciTunesiTunes Music
6. Make sure you have a folder My DocumentsMy MusiciTunesiTunes MusicRingtones (if not create the folder)
7. Rename the .mpa song to .mpr (you may want to change your computer settings to show hidden extensions)
8. Double click on the renamed song.
9. The new ringtone should now appear in the ringtones list in itunes. Select it for syncing
10. Sync the iphone.
11. Go to SettingsSoundRingtone on the iPhone. There is a new grouping called Custom. Your new ringtone should be there.
and jkwuc89 for Mac OS X 10.5:
Select the song in iTunes that I want to use as a ringtone. Protected AAC files will not work.
Right-click on the song and select Get Info
Go to the Options page and select the start and end times for the ringtone
Right-click on the song again and select Convert Selection to AAC
Right-click on the converted song and select Show in Finder
Drag the .m4a file from the Finder window to your desktop
Go back to iTunes and delete the converted song from iTunes. When I skipped this step, double clicking on the .m4r file to import the ringtone into iTunes did not work properly.
Right-click on the song file on your desktop, select Get Info and change the file extension from .m4a to m4r. You should get a warning message about changing the extension.
Open a Finder window and locate the Ringtones folder underneath your iTunes folder. The path should be /Users/
Drag the renamed song file from your desktop to the Ringtones folder in Finder.
Double-click on the .m4r file now stored inside the Ringtones folder. iTunes should change to the Ringtones folder under Library near the top and start playing the ringtone
Plug-in your iPhone to begin the sync process. This should copy the ringtone over to your iPhone. You can verify this after the sync is complete by expanding the iPhone contents inside iTunes and then, selecting the Ringtones folder.
Now, after doing the sync step above, I still did not have a Custom category under Settings | Sounds | Ringtone on my iPhone. I suspect that "something" must be done to get this to appear (like purchasing and syncing a ringtone for instance). So, to work around this, I downloaded, installed and ran the trial version of iToner. After doing one sync from within iToner, the Custom category showed up on my iPhone.
We don't know if Apple will take this method away again in the future. In the meanwhile, iPhoneRingToneMaker (Windows) and iToner (Mac) continue to function with the latest updates.