I have been working on making my Juce APP listen and speak UMP. After weeks of struggling I enlisted Cluade who was able to help me craft a system of call backs and circular buffers to get the data flowing. Why was it really necessary to completely rearchitect the MIDI interface? Couldn’t we just get a stream of 32 bit words that can be parsed at run time?
I have the windows side working well, it was way to hard to do but I made it work.
The MAC side has been a much harder pull off. I have almost everything working but:
when I try to send from my app a message type 4 registered controller It gets demoted to a generic message type 2 data entry MSB before being put on the USB wire. Both Claude and Google think there is some sort of .connectOutput(myEndpointId,ump::PacketProtocol::MIDI_2_0). But I can’t get it to compile.
When I send in type 2 Messages are translates up message type 4. I know the spec spends many pages droning on about how to handle these translations. But really I just want the 32 bits i sent no more.
As you probably know I was heavily involved with creating the UMP architecture and specification. It really bothers me that you think you should trash my midi messages.
On another beef,
I suspect it is not the fault of juce that the Mac relies on CI for getDeviceInfo() which it not even reported correctly. Whereas the Windows reports the message type F endpoint info negotiation.
So please tell me how to get the UMP messages I send from my app to my device. And how to get the messages from my device back to my app. Please don’t change my messages.
Sorry for the harsh tone
Dave

