Unfortunately the "quickly go out of whack" behavior seems to be a hardware problem.
The One folks have sent us both their keyboard and the Hi-Lite (along with the technical details of their completely made-up, proprietary communication scheme) so we can try to get the lights working in Synthesia. The impression I got from reading between the lines in our emails back and forth was that their original plan was to have a completely closed ecosystem, but user requests for compatibility with other apps had overwhelmed them a little more than they had expected. The v0.1 of the technical document they sent over with the communication scheme was dated two days prior.
Our integration with the keyboard went totally smoothly and everything there seems to work just fine.
Then, a year later, they announced the Hi-Lite product. They use roughly the same communication scheme, except the Hi-Lite also has a notion of blue vs. red lights. (The keyboard is red-only.)
But, we noticed early on into the Hi-Lite integration that things didn't behave quite the same. If you send very
slow/periodic/infrequent messages, everything is fine. But even so much as trying to simultaneously light a chord on one hand with a few notes on the other seems to lead to the light strip becoming overwhelmed and you get all sorts of strange behavior like flickering, lights in the wrong octave or out at the edges, etc.
When we were finally able to get in touch with the engineering team, the official answer was that we were sending messages "too quickly".
I asked how they define "too quickly" and after six or seven messages back and forth (with a rather steep language barrier and only bits and pieces of my questions answered each time), we eventually got down to these sorts of (direct quote) snippets:
: "About transmission speed, our engineer said you can try 20ms or 50hz."
: "... how many light messages can be sent safely every 20ms? Only one? Several? How many?"
: "Only one."
: "Just to confirm: You guys developed hardware that uses the MIDI standard (from the year 1981, which communicates at 31250 bps) in the year 2017 that is only able to safely receive eight bytes every 20ms (or 3200 bps)? I'm interested to hear about the design decisions that made you choose to support only 10% of the speed supported by a three decade old standard. What kind of microcontroller do you have in that thing?"
: "As for how many bytes can be sent in one time, this is related to the interval of sending packets specified in the BLE protocol, as well as differences in mobile devices, operating system differences, and differences in Bluetooth chips. Considering the above factors, in order to ensure complete and stable data, we decide Sending one packet of data at a time is 20 bytes."
That was about the Bluetooth connection, but I never got a satisfactory answer why the directly-wired connection seemed to suffer from the same problems.
At the end of the day, they seem to have made some design decisions that severely limit the usefulness of the device. I wish I had a better workaround for you. Sorry!