A few months ago, Eugene Olsen’s church lost its organist when they moved out of the area, but Eugene noticed that the organ happened to have a MIDI interface. He used a Raspberry Pi 4 and grabbed MIDI files of the hymns, then wrote a custom hymn player in C++.
(Video shot by Kathryn Burgess with the help of Timothy Burgess)
Hardware
- Raspberry Pi 4 Model B
- M.2 NVMe SSD (this made disk I/O “blazing fast” for Eugene)
- Argon ONE M.2 case

Software-wise, a custom-built MIDI sequencer written in C++, and based on cxxmidi library which uses rtmidi and ALSA, runs on 64-bit Raspberry Pi OS.
How does it work?
The organ player is controlled over Wi-Fi by an iPad, and Eugene made the Raspberry Pi into a Wi-Fi access point with the help of this Tom’s Hardware tutorial. A Wi-Fi dongle connects to the church’s Wi-Fi. This way you can download new hymns and updated software without removing the Raspberry Pi from the organ.
The software that allows remote control of the Raspberry Pi from a mobile device is RaspController, which is available for both Android and iOS, and in many languages.

Eugene opened up the organ at church and saw that it has a MIDI interface. He found a USB to MIDI adapter and some MIDI libraries for C++. Luckily, he has been making music with MIDI since the 1990s, so he knew what he was doing. He experimented with some off-the-shelf software MIDI sequencers, but none played the hymns just as he wanted, so, being a professional software engineer, he looked for some libraries and wrote his own sequencer. Eugene settled on the cxxmidi library because it’s written in a way that can be easily extended. He wrote a few small extensions and stitched the library routines together with C++, creating a MIDI sequencer that plays the hymns exactly the way he wants.


Sibelius music notation software takes the written music from the hymn book, then exports the hymns as MIDI files.
Why not find a new human organ player?
Every aspect of the Eugene’s church is volunteer-run, so there aren’t the funds to hire musicians and whatnot. When the organist moved away, Eugene was asked to play the organ for services. However, while he’s a software pro, he is a beginner keyboard player and he found it took him around three to five weeks to learn each hymn to his satisfaction. When he discovered that he’d need to learn three or four new hymns every week, he enlisted Raspberry Pi as the new organist.
