I struggled with designing a speaker not because it was difficult to make it work but because I kept expecting it to be harder and over-engineered the design over and over again, in the end the design for this one is rather simple and with a few modifications (shape of the magnet holder) could probably be even simpler. Here is this module as it stands today in action:
Currently the best way to drive the speaker is with the kits h-bridge, by opening the chrome extension included in the project go to the speaker section, there you can will find a few short songs built into the Arduino code to play. Additionally, using the home row of the keyboard you can play an octave of notes. All of these notes are just square waves so using some more intelligent code I should be able to produce a more pleasant sound using the h-bridge as more of a DAC . I have also hooked it up to the output of a stereo and the result is surprisingly good (not great mind you) but in trying to keep the project self contained I wanted a way to use the speaker without needing to find a stereo. Furthermore I would like to make it possible to use the h-bridge as a class D amplifier inspired by this project http://hackaday.com/2014/12/28/class-d-amp-with-an-h-bridge/, it seems like that should be possible with more time on the software side, even if the quality isn't spectacular it should be good enough for this, I mean its a Lego speaker!
Additionally now that its possible to add screws to the coils I have been working on redesigning the relay to not require a spring in order to reduce the number of unique components needed and the initial results are promising with better reliability and less finicky component placement, but I am trying to have a more finalized design before I post that again.