helgoboss / helgobox

Helgobox: ReaLearn & Playtime
https://www.helgoboss.org/projects/helgobox
GNU General Public License v3.0
204 stars 20 forks source link

Adding Mackie C4 Support #726

Open nmorris80 opened 1 year ago

nmorris80 commented 1 year ago

Mackie C4.pdf

I have attached the C4 info

helgoboss commented 1 year ago

@nmorris80 This document is not really a spec of the C4 communication protocol, it's a CSI widget file.

Did you try it in CSI and does it work there to your satisfaction? So does it allow you to use all displays and so on?

RattlesnakeLodge commented 1 year ago

Hey, just a quick heads up, I parsed this from CSI source, may have the pertinent MIDI bytes for the C4 displays. Thanks again for your help with my own requests for MCU extenders and X-Touch / X-Touch extender color displays!

if(widgetType == "FB_C4DisplayUpper") feedbackProcessor = new MCUDisplay_Midi_FeedbackProcessor(surface, widget, 0, 0x17, stoi(tokenLines[i][1]) + 0x30, stoi(tokenLines[i][2])); else if(widgetType == "FB_C4DisplayLower") feedbackProcessor = new MCUDisplay_Midi_FeedbackProcessor(surface, widget, 1, 0x17, stoi(tokenLines[i][1]) + 0x30, stoi(tokenLines[i][2]));

Compared to standard MCU displays...

if(widgetType == "FB_MCUDisplayUpper") feedbackProcessor = new MCUDisplay_Midi_FeedbackProcessor(surface, widget, 0, 0x14, 0x12, stoi(tokenLines[i][1])); else if(widgetType == "FB_MCUDisplayLower") feedbackProcessor = new MCUDisplay_Midi_FeedbackProcessor(surface, widget, 1, 0x14, 0x12, stoi(tokenLines[i][1])); else if(widgetType == "FB_MCUXTDisplayUpper") feedbackProcessor = new MCUDisplay_Midi_FeedbackProcessor(surface, widget, 0, 0x15, 0x12, stoi(tokenLines[i][1])); else if(widgetType == "FB_MCUXTDisplayLower") feedbackProcessor = new MCUDisplay_Midi_FeedbackProcessor(surface, widget, 1, 0x15, 0x12, stoi(tokenLines[i][1]));

nmorris80 commented 1 year ago

Yes, this was copied from CSI, but it does cover all rotary, buttons, LED's, and displays of the unit. I assumed this was relevant, sorry if it is not.

helgoboss commented 1 year ago

@nmorris80 It's relevant, no worries. It's just not the spec itself. Thanks. So it does cover everything, yes? That's perfect because then I can have a glimpse into CSI's code to extract the information which MIDI messages need to be sent ...

@RattlesnakeLodge ... and turns out somebody already did it. Thanks!

nmorris80 commented 1 year ago

yes thats everything, great!

nmorris80 commented 1 year ago

Anything else I can do to help with this?

helgoboss commented 1 year ago

Anything else I can do to help with this?

It's just a matter of time/priority at the moment. I will raise it to the "next" list. But even that's already long ;)