Unlike Android, iPhone can't use an MP3 directly as a ringtone. Ringtones have to be in Apple's M4R format, so the usual path goes through Apple's free GarageBand app once. When you know the steps, it takes about five minutes.
Step 1: Cut the part you want
- Add your song to the MP3 Cutter.
- Drag on the waveform to pick the chorus or your favorite part. iPhone ringtones usually play for 30 seconds or less, so a 20 to 30 second section works best.
- Press "Keep selection" and add a 0.5 second fade in and out so it starts and ends smoothly.
- Save as MP3.
Shortcut: the Ringtone Maker can save an M4R file directly (in browsers that support AAC encoding). With an M4R you can skip GarageBand if you have a computer (see "If you have a Mac or PC" below).
Step 2: Move the file to your iPhone
Send the MP3 to your iPhone with AirDrop, email, iCloud Drive or any other way you normally use, and save it to the Files app.
Step 3: Export it as a ringtone in GarageBand
- Install GarageBand (free) from the App Store, or open it if you already have it.
- Create a new project, then use the Loop browser > Files to import the MP3 from Step 1 into a track.
- Trim it again if needed. GarageBand shortens anything that is too long when it exports a ringtone.
- Go back to "My Songs" in the top left, long-press the project and tap Share.
- Choose "Ringtone", give it a name and tap Export.
- When the export finishes, tap "Use sound as…" to set it as your standard ringtone or assign it to a contact.
Changing it later
Open Settings > Sounds & Haptics > Ringtone to pick the ringtone you made at any time. To use it for just one person, open that contact, tap Edit > Ringtone and choose it.
If you have a Mac or PC
You can skip GarageBand. Save your trimmed clip as an M4R with the Ringtone Maker (or save an M4A with the Audio Converter and rename the extension from .m4a to .m4r). Then connect your iPhone and drag the file onto the device in Finder (Mac) or the Apple Devices app / iTunes (Windows). It appears at the top of the ringtone list.
Good to know
- Custom ringtones don't always come with you to a new iPhone. Keep a copy of the file so you can add it again.
- Even a longer ringtone may get cut short on the incoming call screen. 20 to 30 seconds is the safest length.
- Using a song you own as a personal ringtone is generally fine, but sharing the file or using it commercially can break copyright rules.
Common problems
- "Ringtone" doesn't appear in the Share menu: make sure you are sharing from "My Songs" and that the project has finished saving, then open Share again.
- The imported MP3 won't play: the file may not have fully downloaded. Play it once in the Files app, then import it again.
- It's not in the ringtone list in Settings: check that the export finished, restart the iPhone and look again.
- It's too quiet: boost it with Increase Volume before cutting so it sounds clearer.
How it differs from Android
Android can use an MP3 file as a ringtone directly, so the process is much shorter. If you use a Galaxy, Pixel or other Android phone, see How to make an Android ringtone.
Sources and date checked
Checked: October 6, 2026
- Apple Support, Create a custom ringtone on your iPhone — https://support.apple.com/en-tm/120692
This article is general information. App screens and steps can differ slightly by iOS version.
Frequently asked questions
Can an iPhone use an MP3 as a ringtone as-is?
No. iPhone only recognizes M4R ringtones. Cut the MP3, then export it as a ringtone from GarageBand, or save an M4R and add it with a computer.
Can I do it without a computer?
Yes. With the free GarageBand app installed, you can do the whole process on your iPhone.
How long can an iPhone ringtone be?
GarageBand automatically shortens ringtones that run past 30 seconds when exporting. Cutting a 20 to 30 second section is recommended.
Can I make one from a YouTube song?
Downloading copyrighted music without permission and sharing ringtones made from it can be a problem. Use music you own or sounds you made yourself.
Is my file uploaded to a server?
No. Cutting happens only in your browser and nothing is sent to a server.