There is software avaiable that always you to make and upload your own ringtones.
My preferred method was to google search for midi files of whatever I wanted (type in ‘google mp3 search’, find the algorithm, and replace ‘mp3’ with ‘midi’) download them, and bluetooth them to my phone. My provider charges $2 for each megabyte of information transfered this way, however, since midi ringtones generally run between 5 and 20 KB, that means the charges that result would cost $0.01 to $0.04 per ringtone, but check the file size before sending it.
Alternatively, if your phone can record audio, simply play whatever you want for your ringtone from a decent pair of speakers, and record it. If you can’t directly save it as a rigntone, just text the audio file to yourself, and upon opening the text message, you should be able to save it as a ringtone.
Of course, all of this depends on your phone plan. With Sprint, the recording method works the best. On my Verizon phone, the bluetooth thing works a bit better. On my friend’s Verizon phone, with ‘updated’ software, there’s no way we’ve found to get ringtones short of buying them, although hacking her phone might work too, but she’s not that tech-oriented and has no desire for ‘custom’ ringtones.
I use a piece of software called "Bitpim".
Along with a cable I got on eBay for 10 bucks, it allows me to plug my LG v8300 cell phone into a USB port on my laptop and load whatever piece of music (in MP3 format) I choose to use for a ringtone.
I make my own ringtones using another free piece of software called "Goldwave". This one lets me carve up a song and take a 30 second piece to use as a ringtone which I then load with "Bitpim". The opening rift from "The Bitch is Back" by Elton John makes an especially satisfying ringtone for a certain party in my contact list. It makes incoming calls easily identifiable.
It's easy if you have some computing juice. If not, it's still easy to learn to do. No one showed me how. I just read the instructions.