I feel guilty for not having contributed with a single line of code to neither EigenD or MEC. I’m very grateful for all the work Mark has put into those two projects. Without actually doing anything to help out, I sometimes think of what I would have liked to contribute with if I got around to it.
The following is how I imagine I’d want my Eigenharp software to work. Without suggesting I will actually start working on this (or that someone else should!), does the following even sound useful to the rest of you? Asking mostly out of curiosity, really.
Anyways, basic idea is to split the software in two. “Core” and “Mapper”, for instance.
Core:
A low level, barebones, “stupid” piece of software based on EigenLite and stealing stuff from MEC intended to start on bootup and always run in the background. Its job would be to connect to the harps on the hardware side and communicate with the Mapper software on the other. I imagine this as something most users would install and the forget is even there. Something with as little functionality and dependencies as possible, really.
Mapper:
Software that could run standalone or as a plugin that would transform the raw data from Core into something musically useful and output that as midi data. Splits, scales, lights, expression curves, etc for all three types models should be configurable and saveable as presets.
No idea how Core and Mapper should communicate. Midi 2.0 or OSC perhaps? Via ethernet?
In my head, there are several benefits of this split. I believe it would make it easier for multiple developers to contribute. Getting Core to run on all sorts of devices or keep that up to date on new OSes is a very different skillset to making a, say, dedicated Eigenharp step sequencer for the Pico in Max.
To me it makes sense to separate what every Eigenharpist will need, always, regardless of their use-case from the opiniated stuff. Perhaps someone would want to create something in Max, someone else something on a rPI, while a GigPerformer user would probably want a different configuration per song (possibly even per Eigenharp model!) of a live set.
Then there is reliability. I’m not sure if this holds true, but I would guess it is safer to let the Eigenharps always stay connected to the device running Core. I.e. if my computer boots up and my Eigenharps connects, then I can trust they will continue to behave until the computer shuts down, regardless of how the mapping from raw data to midi changes back and forth mid-performance.
Edit: future-proofing. If Core runs fine on, say, an rPI today and I can receive raw data from that to a laptop, then I could keep that PI as is for all future and worry less about how new Mac OS updates etc. will affect my beloved instruments.
In my ignorance, I imagine I could take some baby steps towards this without too much work if I use MEC as a starting point, send OSC data from that, and then make a simple VST plugin that converts the OSC data to midi. On a Mac.