Jim writes –

Why write a music program for the internal speaker when the speaker sounds so terrible? Because the journey is more important than the destination.

Ultimately, I wrote it to teach myself OOP techniques, and simply to see if it could be done. Along the way I felt that I learned what it was like to program 30 years ago, where you have to put much more thought up-front into design instead of rapid development.