Fastest communication interboard


#1

hi there,

what is the fastest way (the least latency) to send midi from one board (controller attached to usb host port) to another axoloti? is din-midi the only way to go? or is there a way to avoid the optocoupler?


#2

unsure if it would be faster, but another option (which would require writing a little code) is midi over UART. even if its not faster for a full implementation of midi, its possible itd be faster if you have some constraints on the type of midi messages you want to send since with uart you can pretty easily specify exactly what you want to send and how. true midi might include more info than you need. you could also use a boatload of digital pins to send a bunch of bits in parallel, depending on how fast the read/write on those pins are. if you wanna get very super (probably needlessly) fancy, you could use a combination of the 2, more pins and more bandwidth cant hurt unless the processing required to combine a serial bus with a parallel bus is too much. a simple example of how it might help is if you expect to only be sending cc's and expect multiple changes of the same cc before a new one is changed, you could use the digital pins to specify the cc and the uart channel to specify the value. I'd try just using uart first though for simplicity's sake.

reliability: in my personal axo project (which uses uart to talk with another microcontroller which handles user input and visual feedback) I've never had an issue with a missed uart message, though I dont believe it has any failsafes by default (better nerds please tell me if im wrong). If you have issues, there are some pretty easy ways to put in things like acknowledgement, checksums, ECCs, etc.

I also havent yet had any perceptible latency, audio or visual.


#3

HI.
Have you tried the midi through gpio object?


#4

I have a pretty similiar setup. I have a midi controller hooked up to one board and I pass through the midi via din midi but bypassing the optocopler. You can just use the pins at the dc part of the board. If both boards share a ground you can just go from Midi out to midi in pin.

I use the midithrough object. Untill now it feels fast and reliable.

Further more also use @Hugo's script for aditional midi io. I for example forward some of the controller CCs to my Voice Live touch using Pa2. (that is the UART way I think). Till now this works very fine too.