Taken from: apple "How to create custom ringtones in GarageBand 4.1.1 With GarageBand 4.1.1 you can export your original song, your original audio recordings, or use Apple Loops and iLife jingles to create a custom ringtone for your iPhone. Here's what you need to do it: +GarageBand 4.1.1 or later +iTunes 7.5 or later +iPhone with software version 1.1.2 or later To create a custom ringtone 1. Set up a cycle region that covers the area you wish to use in the GarageBand song. Note: This area must be 40 seconds or less in length. 2. Once the cycle area has been set, choose Share > Send Ringtone to iTunes. Troubleshooting +If there are any issues creating or syncing ringtones, here are some suggestions: +If the Share > Send Ringtone to iTunes menu item in GarageBand is dimmed, make sure that you have iTunes 7.5 or later. If you have an earlier version, use Software Update to get the latest version. If you see an error message that indicates your ringtone was not copied when you synced your iPhone, make sure that the iPhone has software version 1.1.2 or later." This is interesting... Apple allowing making our own ringtones from our own mp3s for our beloved iPhone. I tried it myself and it works. Just make sure to keep your tracks less than 40 seconds. And it wont work with songs purchased from the iTMS. Garageband respects the DRM protection of those songs. But itll work with any mp3 you have thats not from the iTMS..
With iTunes 7.5 and iPhone v1.1.2, any AAC file under 40 secs can be made a ringtone. Just rename it from .m4a to .m4r, copy to iTunes, and sync to your iPhone.