dynamically generating ringtones based on the calling phone number

Brolin Empey brolin at brolin.be
Sat Jan 30 13:10:39 CET 2010

Hello list,

Yes, believe it or not, I am actually posting a message which could be 
considered on-topic! ;)

I have had an idea for years, but have not searched to see if anyone has 
already implemented it.

My idea is to have my cell phone (my FreeRunner, of course, which runs 
QtMoko v14) dynamically generate a ringtone for incoming calls:  the 
ringtone would be a monophonic sequence of tones or notes corresponding 
to the sequence of digits in the calling phone number.  I think this 
would be cool because I could identify the caller by the ringtone alone: 
  I would not need to read the display.  The initial version could 
hard-code the mapping of digits to notes;  a subsequent version could 
read the mapping from a file, like Keynote does (see below).

Has anyone already implemented this?  Which search terms should I use to 
get relevant results from Google Search or maybe Bing?

In 2002, I found an MS-DOS program (I think;  or maybe it was for 
Windows?) which read a phone number on the command line and wrote a .wav 
file of the (DTMF?) tones a touch-tone phone uses to dial the phone 
number.  I thought it was cool because I could hold a handset’s 
mouthpiece up to the PC speakers (I mean the stereo speakers connected 
to the line-out or speaker-out jack, not the PC speaker inside the case! 
:)), then play the .wav file to dial the phone number.  I should try to 
find that program again.  I think it was written in Turbo Pascal or 
Borland Pascal, but I forgot if it was open-source;  I used the author’s 
binary.  I think it was called TCHTONE?

If Timidity++ works on QtMoko, I could try to figure out how to read the 
calling phone number, map its digits to General MIDI notes, then feed 
the MIDI sequence to Timidity++.

I already have experience mapping digits to General MIDI notes in my 
“note” and “Keynote” programs.  I wrote both in C while I was learning 
to program (well, I am always learning! :)), but I did not know what I 
was doing then so the source is gross.  I probably should have used an 
interpreted language, such as Perl or Python, instead of a compiled 
language, such as C, though.  Keynote is for Windows only, but note is 
cross-platform:  in 2004 or 2005, I had it running on MS-DOS and 
FreeDOS, Windows 98 Second Edition (AKA Lose98 Second Failure.  Yuck!), 
Windows 2000 Professional Edition and/or Windows XP Professional 
Edition, Linux v2.6.x with glibc (multiple distros, but I settled on and 
used Gentoo the most), and FreeBSD v4.10, maybe v5.0 too.  I used GNU 
development tools (GCC v3.x, binutils, make, ...?) on all platforms: 
DJGPP on MS-DOS/FreeDOS, MinGW on Windows, and native GCC on Linux + 
FreeBSD.  Anyway, note uses ALSA on Linux to play notes with 
Timidity++’s ALSA sequencer interface, so I could probably reuse that 
code on the FreeRunner.

Anyway, enough rambling.  How much interest would there be if I cobbled 
together a “ringnote” or dynamic ringtone (“dynringtone”?) program? :) 
I use only QtMoko on my FreeRunner, so I would need people to help 
support other distros.


PS:  How many Openmoko users make their own ringtones?  I used OpenMPT 
on Windows to save one of my favourite chiptunes, Random Voice - Monday 
(MOD format) [1], as a PCM .wav file, then used LAME to encode the .wav 
file as an MPEG audio file so I could use it as my ringtone on my Nokia 
6103b (Series 40), then my FreeRunner, since neither Series 40 nor 
QtMoko supports module formats as ringtones.

[1] <http://www.fladen.net/>

Sometimes I forget how to do small talk: <http://xkcd.com/222/>

“If you have to ask why, you’re not a member of the intended audience.” 
— Bob Zimbinski, <http://webpages.mr.net/bobz/ttyquake/>

More information about the community mailing list