Most smartphones come with a range of ringtones.
But if you don’t like those, you can make them yourself from music that you are allowed to use.
All software that is used here is open source. They should work on all recent UNIX-like operating systems. In my case, I installed all of these programs using the FreeBSD ports system.
The workflow is as follows;
- Extract a clip from the source in WAV format.
- Add fade-in and fade-out if you want.
- If necessary, normalize it.
- Convert it to MP3 format.
- Upload the MP3 files to your phone.
For extracting audio from most music or video formats, we use the Swiss army
knife of multimedia, ffmpeg.
This should work with all formats that ffmpeg supports.
ffmpeg -codecs to get a list of them.
Extracting WAV data from a video or audio file is shown below.
ffmpeg -ss 00:00:28 -to 00:00:57 \ -i music/fanfare_for_the_common_man.webm \ -af "afade=t=in:st=0:d=2,afade=t=out:st=27:d=2" \ -c:a pcm_s16le -vn ffcm.wav
-to parameters indicate the start and end time for the
clip in HH:MM:SS format.
Note that these options should be in front of the input file option.
-af option contains a set of two audio filters:
- Fade in (
afade=t=in) starting at the beginning (
st=0) and lasting two seconds (
- Fade out (
afade=t=out) starting at 57-28-2=27 seconds (
st=27) and lasting two seconds (
-c:a pcm_s16le option we indicate that the output should be
signed little-endian 16-bit PCM samples.
This is the common format for generating MP3’s from.
-vn option disables video output.
For converting module or midi files to WAV, we use timidity++.
timidity -G 0-15 elysium.mod -Ow -o elysium.wav
-G option marks the start and end of the clip.
-Ow options sets the output format to WAV format.
For ringtones it is generally desirable to have them at a standard volume level. The normalize program is used to adjust the volume of the WAV files.
Often it is sufficient to let this program do its thing without arguments.
If necessary you can use the
-a option to adjust the amplitude.
normalize -a 0.5 ffcm.wav
Conversion to MP3 format
For this we use lame.
lame --tt "Elysium" --ta "Jester" elysium.mod.wav elysium.mp3
Uploading to your phone
For my smartphone that uses Android, I use android-file-transfer after
connecting the phone to my PC with a USB cable.
The MP3 files should go into the folder
Ringtones, and then they can be used.
Iphones generally only want to talk to the eldritch horror that is itunes. Which of course doesn’t run on free operating systems. You might try the software from libimobiledevice on your favorite free OS.
For comments, please send me an e-mail.