For sound output, I initially designed FATCAT with a small PCB mounted piezo speaker in mind. While that's still an option I've found it difficult to source piezos of that size that can achieve high enough sound volume. I've had some luck with piezos I've desoldered from old PC motherboards, but I find that the new ones I've bought sounds very tinny and quiet. Guess they don't make them like they used to.
A larger 35 mm type piezo speaker gets loud enough, but is very difficult to fit inside the Altoids tin together with the rest of the components.
With the last prototype I made I used a small dynamic speaker element glued to the inside of the lid. A speaker element of this size can achieve a respectable sound volume, but it's a bit tricky to position it correctly. If you glue it to the wrong spot, you might be unable to close the lid. Also you need to give the wires running to the PCB just the right slack: Not too short but not too long either, or they might get caught in something. The whole thing is a bit tricky and it doesn't feel like the ideal solution to the problem.
Today I wanted to try out a beefier speaker element I'd scavenged from a pair of crappy over-ear headphones. It was far too big to fit inside the case. So instead I drilled a bunch of holes in the bottom of the tin, and printed out a housing for the speaker and glued that to the underside of the tin. The sound can then pass through the holes in the PCB.
I call it "the beast"! It gets quite loud actually. But of course having an external housing for the speaker is cheating. All components should really fit inside the tin.
Where to go from here
Cheating aside, this seems like the proper place for the speaker—below the PCB. You can fit a larger speaker, it's not as finicky to build, and the speaker membrane gets protected.
So for my next prototype I'll apply the same principle, but ditch the external housing. Instead I'll elevate the "floor" of the inner case 3D-model, and make a cylindrical compartment in it to fit a speaker element. There's barely more than a 5 mm clearance between the tallest component and the lid—so it will be a tight fit—but it might just work.