So I have debugged the merge, and apart from Sysex it pretty much works.
Sysex opens some interesting buffering challenges.
I will need to give that some thought.
The PITA with Arduino is lack of debug support.
Indeed, I lot 1 week of time because only when I added debug code did the thing work.
Short version: I made two mistakes.
The debug (1) slowed down the receive, so we READ the message.
Without the Serial.print out, the loop was far to quick to read a complete message.
Secondly, my "report if you get an incomplete message" was "out by one".
So it never told me I was incomplete ... when I was!
The debug messages made things worse because when you enable them you are NOT out by one :-).
I can laugh now.
I had to recall to put a % 256 (well & 255 is more efficient) on the NRPN address to that Knob X, Y and Z work.
I was getting odd behaviour with the NRPN Value.
If I send them as straight CCs all is well.
I found my logic error and now I am pretty sure the runningValue is ok now.
This opens up the way for easier 8192 bias (which one applies twice!).
1 - hardware is merging UF80 (Stream 1) and Miniak (Stream 2).
2 - merged stream is fed into splitter for debug purposed, but essentially goes into BCR2000 (and feed into MidiOx .. not necessary, just for debug)
3 - BCR can then recognize input from the Miniak, and update the BCR
or the BCR can update the hardware.
4 - the transform engine can then take care of any bias added to the NRPN values
Create a BCR preset where 1 knob is used where previous 2 were used
Debug transform logic
Add in LCD and decode the values, displaying them in the natural units of the Miniak.
Publish "how to" for anyone who is interested.
PS the great news from my perspective is I finally got some time to write some music :-)
Log in to post a comment.