This project got awarded in the Arduino Day Challenge.
It's a long time project, where I've tested different boards. I've ended up in having a MKR 1010 Wifi, which will allow user interface via Wifi from a local laptop outputting MIDI.
Todo:
- Add some more servos to operate stops and crescendo lids
- Add a mechanical glockenspiel to play along
- Add a mechanical chime player
- Create a website with a jukebox function
The stops activate different sets of reeds. Some of the stops are real, some just open smaller lids, which change the timbre a little. Some stops activate mechanical octave coupling. The octave coupling is not in my interest, because that I can create programmatically instead of having a very strong servo pulling the stops for that. Neither are the timbre changing stops, they were kind of a pathetic attempt by the manufacturer to give an impression that the organ really had a lot of stops. There are four real stops. The bass side has one 8' register and one 4' register. The treble side has two 8' registers, where one of them is slightly out of tune, giving a nice chorus effect.
Then there's a Vox Humana stop, which is a fan rotating and giving a Leslie kind of vibrato effect to the sound. The fan axis is not what it was 120 years ago, and the air pressure is not enough to rotate it. I might get it working, but it might be an easier task to add a BLDC motor to rotate the fan.
Two crescendo lids are actually meant for crescendos, not just timbre change. Those I'm going to activate with their own servos. So far, the organ only reacts to note on and note off. But the additional servos will react to other midi messages like instrument change (for the extra 8' and 4' registers) and control change messages (for the crescendo lids and vox humana fan). All these changes can be written as plain standard sheet music markings in Musescore, which will do the playback directly, without me first having to create a midi file.