List of changes to original version based on feedback from a couple of early users:
1) Much stronger crank mechanism based around a larger gearmotor in new 3D printed enclosure with a 6mm shaft. The bulb has been removed as if it blew, the system would not work as intended. Replaced with wire-wound resistor bridge.
2) No run-on when you stop cranking. Originally this was intended to help beginners as it would sound even if you momentarily stopped cranking.
3) Keys do not play at all unless you are either cranking or have pressed the gaming FIRE button.
4) Drones did not sound right in previous code when using tuning other than G/C. As the DG code has to be aware of your selected drones on the FluidSynth app on the connected smartphone, this has been addressed by the OLED screen offering you 4 tuning options on startup. Once you select one, it then tells you what drones to select within FluidSynth. This keeps it all working correctly. Tunings are: melody G / Playing in key of G; melody G / playing in C; melody D / playing in D; melody D / playing in G. Trying to keep beginners from information overload but also keep more experienced users moderately happy.
5) If you intermittently crank with a note key held down, it will sound the note each time, in previous code you had to release and re-depress the key.
6) In new FluidSynth soundfont (V10 onwards) I have added larger choice of different loudness buzz sounds and keyclick sounds. PM me for the soundfont. I will send by wetransfer as large file.
7) Repeat MIDI - off commands being sent out on some channels have been much reduced. With FluidSynth these were not noticeable but if attached to a more sophisticated synthesiser program running on a laptop, this could produce problems.