So I was trying to create my own ringtone and I followed all the guides here, youtube, google, etc... I made my .m4r ringtone using the aac encoder and shaved it down to 30 secs, but when I went to sync, it would complete but it wouldn't transfer the song over. I've noticed many people have had this very same issue but no one provided a solution so I thought I'd share what I did. You will need to have your iPhone jailbroken and OpenSSH installed. Then scp the ringtone to /var/stash/Ringtones ringtone directory, i.e. from Terminal > <directory your ringtone is stored><ringtonename>.m4r root@<ipaddress>:/var/stash/Ringtones/ Obviously replace the tags with your own values. Also, I believe with this method you don't need to restrict your ringtone to 30 seconds.