Smallest Arduino compatible micro?

Hey guys, I've been working on a project for someone for a while, however my original idea has kind of fallen through (Using a voice recording kit). The output quality is terrible, especially when amplified. I realized today that I could basically do what I've been trying to do with this project (Generate beeps), with a microcontroller.

The thing is, the ATMega328P is almost $12 locally, although the 168 is priced a bit better at $5.

But I'm wondering, are there any uC's even cheaper/less powerful, that'll run the tone() function properly? It really only needs enough I/O for the speaker output, and 1 button input.

Cheers, Dan

Try using an Attiny45/85. *3 analog input pins *2 digital pins with PWM *4/8K bytes of flash memory.

Check out on how to program it using arduino.

I think the tone() function should work properly.