Modifying an old speaker is a relatively easy way to make a good transducer.
I've also done some experiments with alternative constructions, making use of those very strong Neodynium magnets.
My idea was to make a strong magnetic airgap by using many small Neodynium
magnets in two circles, N and S pole correctly aligned. A big voice coil in the
airgap should provide the electromagnetic force.
Conclusion of this first experiment: It works, but vibration power is relatively low, and the Q of the system is too high, resulting in low vibration in the 30 ~ 60Hz range, while vibration around the resonance peak is excessive. I need to find a way to make a better damping and more efficient electromagnetic motor.
Note that I used copper pipe for the voice coil former, which I thought was needed for cooling the voice coil. However, the fast moving magnetic field creates induced current in the copper pipe, that adds a frequency dependent damping. (Damping increases when frequency increases, which is undesirable)
This video shows the movement of the transducer when frequency is slowly reduced. Resonance point is around 20Hz. Note that due to camera 30 fps, there is severe stroboscope effect in the video.