We all love our cell-phones. We love the ability to download a custom ringtone to show off our individuality. What we (and by 'we' I mean 'I') don't like is paying $2.49 or more for a 10 second snippet of audio that's been compressed so aggressively and then played back so loudly that is sounds like you're trying to listen to a piece of some song through a blown speaker under a swimming pool. Or worse yet, $2.00 for a MIDI version of the song that only sounds kind of like the track you really wanted. And if you're interested in video game songs? Forget it. You have the choice of exactly one song: a MIDI version of the Super Mario Bros. theme song. It's recognizable, but only just.
Since the selection of commercial video game tones was rather lacking, and just didn't sound quite right, I decided to figure out if there was a way to make my own. It turns out that the manufacturer of my phone sells a utility to allow me to upload custom ring tones to my phone, but it's not free, so I then decided to see if there was a way to do it for as close to free as possible. If you'd like to follow along at home, this is what you're going to need:
1. A copy of Winamp. Any version from 2-5 should work, I'll be using version 5.33
2. A copy of Audacity, a free, reasonably powerful audio editing package.
3. lame_enc.dll. This allows Audacity to create MP3 files.
4. A webserver facing the Internet. Setting up a web server is beyond the scope of this article. But there are plenty places where you can get free web space, and scads of tutorials to get you started.
5. A Winamp plugin for playing NES Sound Format files (I prefer Nosefart)
6. NES Sound Format files
7. A cell phone capable of playing MP3 files as ringtones
Install Winamp and Audacity, you can usually accept all of the defaults. Winamp is bad about taking over as the default media player for every kind of media on your system if you're not paying attention to the installer. We'll configure the relevant options later. Next, install the Nosefart Winamp plugin (available here) the version I'm using is 1.92. It's old but still works great. Next, we'll have to find some NSF files. NSF files aren't exactly ROMs, but they are made from ROMs (Wikipedia has a good writeup), so I'm not going to tell you where to get them, but they're not hard to find.
Once you've got everything installed, start Winamp and drop your NSF file onto it to start it playing. The NSF files are interesting in that each file has the possibility to hold multiple songs and sounds from a game. The plugin also changes the behavior of the buttons somewhat. The buttons that skip the tracks now allow you to navigate between the songs and sounds contained within the NSF file. Now comes the fun part, trying to find a song or part of a song that would make a good ringtone.
A couple of things to keep in mind when choosing a ringtone:
A good ringtone is a short ringtone, ideally less than 10 seconds. You're not going to hear it anyway.
A good ringtone repeats well. If you don't get your phone right away your tone is going to play again, and it just sounds better if it doesn't cut off at some arbitrary point in the middle before it repeats.
For this exercise, I'm going to choose the little tune from Metroid that plays when you pick up a special item. I like this sound because it has a discrete beginning and ending (makes it easy to edit).
Now we need to configure Winamp to create a WAV file from our NSF file. Press CTRL+P to go into the preferences and navigate to Plug-Ins ? Output. Select the Nullsoft Disk Writer plug-in, and press Configure. The thing we're interested in here is the Directory button. This will allow you to choose where your WAV files will go. Choose your directory, press OK, press Close, and you're ready to create your raw WAV file.
Once you're back to the main Winamp window, press the Play button. You're going to notice a couple of things right away: there is no sound, and the clock is counting extremely quickly. The NSF songs will play forever if you let them, and Winamp will keep putting it into your WAV file until you tell it to stop. So you're going to want to tell it to stop relatively quickly. I took about 2 seconds to press the 'stop' button and ended up with a file that was over 2 minutes long. Don't forget to go back into your Winamp preferences and reset the output plugin to the Directsound output plugin.
Now that we're done with Winamp, let's turn our attention to Audacity. You will need to set it up with lame_enc.dll to be able to export MP3 files, instructions on how to do it and where to get lame_enc.dll can be found here. Once that's done, open up Audacity and drag-and-drop your new WAV into the program. The interface looks pretty daunting, but we're only concerned with a couple of buttons. First, use the green play button to preview the sound you made and to figure out about where the part is you want to cut out. Highlight around the part you want to keep (with a little extra, just to be safe) and press the 'trim outside selection' button and then the 'fit selection in window' button.
This will get rid of the bits we don't want and zoom in for some finer control. From here you can continue to reduce the selection window, isolating the part of the sound that you want, using the green play button each time to preview it, until you are happy with it. Now we can export the file as an MP3, here's where things can get a bit tricky. I happen to know that my phone, a Motorola v3 Razr, can only play mono MP3s as ring tones at about 128 kbps (the defaults in the Winamp disk writer plugin, the NSF plugin, and Audacity, so I didn't have to change anything), and that they can't be more than about 12 seconds long. To figure out what it was able to handle I had to do some experimentation, which did cost some bandwidth. Your phone will likely vary somewhat, but the defaults should be pretty safe.
Place your newly-created mp3 on the web host of your choice, then use your phone's built in browser to download it. This, too, is going to vary from phone to phone. So, I can't offer specific help. Once your song is downloaded, save it to your phone. And then set it as your ring tone. Our only cost thus far has been the cost of downloading the song (in this case 67KB x whatever your cell phone plan charges per kilobyte downloaded). You can check out the tone I made here: here.
It should also be noted that there exist plugins for Winamp to be able to play music files for several classic game systems, so these instructions can be easily adapted for Super NES, Genesis, Playstation, or a number of other systems.