I did something good, something arguably neutral, and something unforgivably bad for Release 4 of ToneDef.
First, the good: I rewrote the audio routines. Again. This time, they are much more flexible, and much more importantly: stable. On top of that, it’s now rather trivial to generate whatever multi-tone sequence I want… like, for example, a busy signal. In fact, I went nuts and added a whole new section to ToneDef called, simply, “Extras“. Inside, you’ll find a whole bunch of dialtones, busy signals, and ringback tones from the US and Europe. I’ll certainly add more as I go along, but this was just me showing off. ;)
For the neutral, I added a front page to ToneDef. From there you can access the DTMF dialer, bluebox, and redbox tones, and also the new Extras page and settings. Everything else still works the same, though you might find it a bit more colorful. (Especially on Android 3.0+ devices.) Whether you like these additions, well, is up to your individual taste.
For the bad… ooh it’s a doozy… on that new front page, I added a tiny AdMob advertisement. It only appears on the front page; it is not shown anywhere else in the app, and will not interfere with the actual dialer functions.
Unfortunately doing that meant requiring a couple permissions (ACCESS_NETWORK_STATE and INTERNET, specifically) so the AdMob object could reach out and snatch an ad. That coupled with the existing READ_CONTACTS permission has led at least one person to be completely convinced that I’m sending Google all of your personal information:

Being a paranoid sort of soul, myself, I understand the fear. But let me be very clear:
READ_CONTACTS is only used for selecting a contact to dial from inside the DTMF dialer.
ACCESS_NETWORK_STATE and INTERNET are only used for loading an ad off the AdMob servers.
If there is interest in an ad-free version of the app, I can easily make that happen. I have some ideas for future versions that might make that a reasonable avenue.