August 8th is Happy Hacking Day in Japan, because "Happy Hacking" sounds like 8 8.
This year, I put a speaker to FSM-55 so that we can enjoy some application.
The board is FSM-55 (Flying Stone Mini Go! Go!), which I designed in 2014: http://www.seeedstudio.com/depot/FSM55-LED-Matrix-Display-p-2121.html
Originally, it is a board to fly "Hacker Emblem", but we can enjoy other applications.
I bought a speaker of http://akizukidenshi.com/catalog/g/gP-01251/
Then, solder it to the connector K1 2-pin and 3-pin. The GPIO PF1 controls the output to the speaker.
Chopstx and examples
The firmware I put to this board is in the Chopstx distribution:
Chopstx is a minimum thread library for such an application.
I develop Chopstx for Gnuk and NeuG, but it is very useful for these particular purposes like flying Hacker Emblem or some toy applications.
The applications are in example-fsm-55/ directory. We have three applications. One is hh.c (the Hacker Emblem), another is debian-logo.c (displaying Debian Logo), and last one is for my children.
I modified the last one to play "Tulip" composed by Takeshi Inoue.
It's simple music. Doe-Ray-Me! The text for music is:
static const char *musical_score = "c4d4e2c4d4e2g4e4d4c4d4e4d2" "c4d4e2c4d4e2g4e4d4c4d4e4c2" "g4g4e4g4a4a4g2e4e4d4d4c2";
We have a thread 'spk' for speaker control and another thread 'music' which interprets musical score and instructs 'spk' thread.
In early 80's, I played something like this with the Intel's chip 8253.
I know that the MCU is powerful enough and it would be even possible to do speach synthesis.
Well, something simpler is better in some cases.