I have a similar project you might be able to borrow bits from. I am building an organ console (two manuals and stops up and running so far, pedalboard still under construction) where the note press/release and stop statuses are monitored by a Pi, and then the status changes communicated to a sound producer - the relay controller in your case, or synth software in my case. In order to spread the synthesizer CPU load I am using one Pi per manual, which would not be an issue for you, but you might still want to spread across multiple Pis just because of the high number of inputs (notes and stops) or outputs (relays). I use mqtt to link the status changes from the hardware monitors to the sound production side. This seemed the easiest way to allow coupling between manuals.
The problem with organs is that fingers times stops can reach quite a high number. e.g. An eight note chord played with 10 stops out means triggering 80 relays, preferably within a few milliseconds of each other. Your relay power supply will need to be handle high surges in the load.
It is still a work in progress on the woodworking side, but I think the code is more or less complete. You can find a build description and code at https://github.com/Squeack/rpi_organ
. Once the pedals are complete and the whole thing tidied up into a self supporting console instead of sitting on a table I will tidy up the documentation and republish.