Article updated February 7th 2014
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. See also: iPhone 5s vs iPhone 5c comparison review
The one exception to this rule is 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're using iTunes 11 on a Windows PC here, but it's a very similar process in older versions, and on a Mac.
Video: set any song as a ringtone on your iPhone
If you don't want to read through the instructions, here's a shorter video:
Step-by-step: make a custom iPhone ringtone
1: On your PC, launch iTunes by double-clicking its shortcut or by finding it in the Start menu.
2: From your library, right-click on the song you want to use as a ringtone and then select Get info.
3: 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 the maximum length for a ringtone.
4: 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 likely because your rip settings are for creating MP3 files. 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.
5: Right-click on the original track, and then using the Options tab from the Get info menu, return the start and stop times to their original times. Otherwise, when you play that track, it will only play the section between your start and stop times!
6: 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. To show the extension for editing, follow the instructions here
If file extensions are not 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!
7: Double-click the file to add it to your iTunes library (or add it using the 'Add file to library' menu option in iTunes). You DO NOT 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 changed the filename that the 'song' linked to (in the previous step).
Then, in iTunes, click the drop-down arrow to select the Tones section of your library. You'll see your ringtone there. If you don't have a Tones section, it's likely to be because Tones is deselected in your iTunes preferences. To enable them, 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:
8: Connect your iPhoneto 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.
9: When the sync is finished, tap Settings on your iPhone, then Sounds, then Ringtone and select the new tone. It should appear at the top of the list, above the default Ringtones.
10: 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 8.
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.