You may have already tried some of the many apps which claim to create ringtones for your iPhone. However, you've probably also found their claims to be somewhat untrue because none have access to the necessary folders on the iPhone and therefore can't add those tones to your tones list. Instead, you have to sync your iPhone with iTunes to get those tones to appear.
This article has (finally!) been updated to reflect the changes Apple made in iTunes 12. The process is largely unchanged, but I've included new screenshots. Don't be put off by the number of steps: once you get the hang of it, you'll be able to create a tone in under a minute.
The one way to avoid using iTunes to make ringtones is to use Garageband, which can create and save ringtones on an iPhone without needing a separate computer at all. Here's a tutorial on how to use Garageband to make a ringtone on an iDevice running iOS 6.
However, in this article, I'll show you how to use iTunes to make your ringtone (or other alert tone - including for text messages), then sync your iPhone to import the tones and set them as your ringtone or text tone. Yes, Apple hasn't made the process easy and whether that's because it wants to sell you a ringtone from the iTunes Store or for other reasons, it's far more difficult than it should be. But, if you're determined to turn that catchy riff into your ringtone, here's how to do it.
We've used iTunes 11 and 12 on a Windows PC here, but it's a very similar process in older versions, and on a Mac.
Step-by-step: How to make a custom iPhone ringtone
On your PC, launch iTunes by double-clicking its shortcut or by finding it in the Start menu.
From your library, right-click on the song you want to use as a ringtone and then select Get Info.
Select the Options tab and then tick the Start Time and Stop Time boxes. Enter times at which you want the ringtone to start and stop. You will have to listen to the track first and note down the time you want it to start. The stop time must be within 30 seconds, as this is Apple's maximum length for a ringtone.
Top tip: If you want to be really precise about when you ringtone starts, use a decimal point. For example, if the section of music starts between 44 and 45 seconds, try entering 0:44.5 in the Start Time box. You can even specify the start and stop time in thousandths of a second, so you could type 0:44.652
Here's what it looks like in iTunes 12:
Click OK. Right-click on the track again, and then select Create AAC version. iTunes will convert the song. It will appear as a duplicate track - you can identify it by the track length in seconds.
If you don't see an option to Create AAC version, it's because your rip settings aren't set correctly. To change this, click the menu at the very top-left corner of iTunes and choose Preferences... Then click Import Settings... next to 'When you insert a CD' and choose Import Using: AAC Encoder.
Step 5: (Don't skip this step!)
Right-click on the song that you chose in Step 1 and then using the Options tab from the Get info menu, untick the start and stop times to return them to their original times then click OK. Otherwise, when you play that track, it will only play the section between your start and stop times.
Now right-click on the short ringtone track and click Show in Windows Explorer.
The file will be highlighted. Right-click on it and choose Rename. Now change the extension from .m4a to .m4r. Click Yes when asked if you want to change the extension.
If you can't see the .m4a extension (i.e. you just see 01 Dancing Queen and not 01 Dancing Queen.m4a), it's because Windows is set to hide the extensions. Here's how to show the extension for editing
When file extensions aren't showing you cannot simply add .m4r when renaming the file. All you are doing here is changing 01 Dancing Queen.m4a to 01 Dancing Queen.m4r.m4a. This will not work!
Double-click the file to add it to the Tones section of your iTunes library (or add it using the 'Add file to library' menu option in iTunes).
In iTunes 12, here's how to open the Tones section: Click on the three dots and choose Tones from the menu.
You can then drag and drop the m4r file into it from File Explorer as seen below:
Windows users: You don't need to delete the ringtone 'song' from your music library within iTunes for this to work, but you should do so as a housekeeping task. If you leave it there, it won't play, since you've already changed the filename that the 'song' linked to.
Mac users: Lots of people have commented saying that in the latest iTunes, the ringtones simply won't show up in the Tones section. There are two things to try here:
1- Delete the ringtone 'song' entry in your iTunes Music library (don't delete the actual file on your hard drive - choose to keep it when prompted). Then double-click on the .m4r file in Finder and it should show up in Tones.
2- If that doesn't work, try moving the .m4r file outside of your iTunes folder on your hard drive (such as to the desktop). Then double-click on it. At least one person found that worked and it showed up in Tones.
For iTunes 11 (and previous) users, click the drop-down arrow to select the Tones section of your library as it will probably be showing your Music library. You should see your ringtone there. If you don't have a Tones section at all, it's because Tones is not selected in your iTunes preferences. To enable Tones, click the menu at the very top-left corner of iTunes and choose Preferences... and make sure the Tones box is checked. Click OK and try again.
Then you'll see the list of tones:
For iTunes 11 and before: Connect your iPhone to your PC and click on 'iPhone' when it appears on the right-hand side of iTunes. Click on the Tones button in the menu running across the top and make sure Sync Tones is checked. If you choose 'selected tones' rather than 'All tones' make sure you tick the tones you want to appear on your iPhone. Click Apply at the bottom to start the sync.
For iTunes 12 users:
If you're not already looking at it, go to the Tones section as explained in Step 7. It's very easy to copy the tones to your iPhone now. When connected to your computer your phone will appear as an icon to the right of the three horizontal dots near the top-left corner. Don't click on it.
Simply select the tones you want (hold down Ctrl and then click on each in turn). They'll be highlighted in blue. Click and hold on any one and drag them over the phone icon. A list will appear on the left: just drop the tones on the device and a sync should begin.
If you have trouble making a tone appear, force a sync by clicking on the phone icon, then on the Tones section in the left-hand menu. Make sure a sync isn't already running, then tick the tones you want to transfer and click the Sync button at the bottom right of the iTunes window.
When the sync is finished, tap Settings on your iPhone, then Sounds, then Ringtone. Your custom tones will appear at the top of the list, above the default Ringtones.
How to make a custom iPhone text / SMS tone:
If you want have a custom tone for text messages, tweets, Facebook posts, new voicemails, reminder alerts or anything else, it's exactly the same process as above.
The only difference is that you'll need to select the appropriate section under SOUNDS AND VIBRATION PATTERNS on your iPhone. Tap one, say Text Tone, and you'll see the Alert Tones list.
Scroll down past these, keep scrolling and you will see your Ringtones list, at the top of which are all your custom tones that you've synched in step 9.
Obviously, I wouldn't recommend using a 30-second song as a text message alert, but each to their own. And, in case you're wondering, there's no difference between a 'song' and a sound effect in iTunes, so there's no need to use part of a song as your custom alert tone. As long as you have a sound effect in a format iTunes can import (usually MP3), it treats it just like any other song. Then, go to Step 2 and use the same process to create and sync the sound effect to your iPhone.
Finally, did you know: you can also create custom vibrations? Here's how to set personalised vibration patterns directly on your iPhone.