Mackie C4 and Cubase. How to make the encoders work?

Oh yea of little faith. Yes, I pretty much know what I'm doing as I've been at this stuff for a long while. ;-)

 

Well what you ask now is not as easy as you might think. MT Pro determines the start of a message by the status byte (high bit set) and cannot break up SysEx into different pieces. I've added translators in case Cubase always sends the full 56 text bytes (plus the header and end of SysEx bytes) for each message but my guess is the length of the messages from Cubase might actually be shorter. It requires LOTS of global variables. So what you will need to do is see how long the messages are, that are coming from Cubase and take off the extra bytes from the end (but not the F7) . My guess is the messages will likely be much shorter than 56 bytes.

Also, I assume we are always starting at the first byte of each line which may not be the case. The variable rr is the start byte of the line and should translate correctly if left untouched.

The variable qq is the C4 display number 0x30 to 0x34 for displays 1-4.

Bottom line is for every virtual Mackie device, you need to put in translators like this for every possible length of bytes that Cubase might send as the pattern and number of bytes will need to match exactly.

See translaters 4.4 through 4.7 for 56 data byte data messages. We use all global variables from ya-yz y0-y1 and za-zz z0-z1. DO NOT USE THESE GLOBAL VARIABLES ANYWHERE ELSE IN YOUR PROJECT.

I would suggest monitoring Cubase and see if it is sending a consistent length of bytes and you might not need 56 combinations of byte lengths for every virtual Mackie devices. You might be able to get away with just shortening the existing patterns to something much smaller.

Remember the pattern length must match and the variables within them must also match.

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz (This is my paypal account)

 

 


Attachments:
1590465168011_V02_C4-2020-05-25-text.bmtp

Hello Steve,

I think i understand what you are saying. That is indeed a little sad, so what is easy to see for us humans, is not easy for MTP. Damn.
The next problem and that is kinda big is, i can not catch any sysex coming out from Cubase/MCU protocol. This problem is what lead me to believe, your approach will not work in first case. So first i need to know, what i am doing so fundamental wrong here. I see sysex when i turn on the C4 or the Commander software for example.
I see sysex if i choose \"MCU\" from the Studio Setup preferences in Cubase and click ok.
But i do not see any other sysex coming out from Cubase/protocol, once the setup is made :/ and i seriously do not know why. From what other Cubase forum members told me, this is not right. They receive outgoing sysex, each time they enter a different mode. The only difference i see is, they have a real MCU unit.
Could it be that we need the stuff that is described on page 240 of the Logic manual:
https://usermanual.wiki/Apple/Logic.1909626546
Since this is not really happening on my side here. This is only happening with the Commander software, but not with Cubase/MCU protocol.

Since we both work pretty much handicapped: You, for not having a C4 unit and i for having only a C4 unit and by far not your experience.
I have some suggestions: I have a friend, who can borrow me a MCU. I think that will help us a lot, because i can better understand the protocol and i do not work completely blind with this protocol.
I mean if we are seriously need to catch any case where a sysex is send by the protocol and have a rule/translator for that case, we simply can not do this completely blind. If that makes a sense for you.

So for now, i think it is better to wait until i have such a MCU unit and then continue with this project.
I only have the fear, that once i have that MCU unit, you will have no time to help me further.

The last thing would be, please contact me privately via e-mail, unless you have no problems with discussing fees here. I have no clue, what you would normally get for such help.

Please consider that i am just a normal person with high ambitions. Covid-19 has ruined my financial situation. I have plenty of time, but nearly no income as a freelancer. Still i pretty much know, that your work should be valued, but i need to have some clue, lead, indication what would be ok for you.
I hope we can find a solution that is good for both of us. If my missus would know this, she would turn the living room into a war-room... i do not care :D
If this project lead to a success, i can convince other people that wants to use their C4 with Cubase to either buy MTP or collect some money from anybody who wants to use the final MTP project (like a small kickstarter project) that in the end belongs all to you.
I stand to my word, just make me some offerings, that are ok for you. I also stand to my word, that i want to help you anywhere i can in this project. I feel really dumb or like some child, to ask for all these things that i already did, but all the formulas and code, is not really something i could learn easily or in no time.
I still hope that all the findouts collected here, are showing you that i am not a total noob or fail. I really, really tried my best. The whole project is only possible for me, because i have a lot of time and need to keep my brain busy and far away from Covid-19 thoughts, if you know what i mean.

Greets, u-man :)

PS: The variable qq is the C4 display number 0x30 to 0x34 for displays 1-4.
Should not be that 0x33 (instead of 0x34) ? Would not that be 5 displays?

Hi, I do not have your email but you have mine so reach out to me there for further discussion.
Yes 0x30-0x33 not 0x34.

Hi, I did a little testing this morning.

It seems that Cubase likes to put out text of length 55, 3, 2 and 1 (not including Header and trailing F7)

So I created 4 additional translators (for Mackie 1 only) with these lenghts and am posting it here.

I also added a generic Mackie handshake answer which I use and works. I actually have a APC40 MKII Mackie emulation.

 

 

I modified the incoming text Sysex from Cubase for the new device ID of 14H instead of 10H.

Again, No way to completely test without an actual C4.

I hope it works!

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

I'm also attaching a text log file of the example capture I used. I was merely turning V-Pots to get updated display.

This whole project  should work only in Mackie Mode only (Not generic mode).

 

 

 


Attachments:
1590518631869_cubase-output-mackie-text-2020-04-26.txt
1590518652548_V03_C4-2020-05-26-text.bmtp

I\'m so glad you guys are looking at this problem. I\'m having the same problem with my Mackie C4 and Presonus Studio One 5. I had been working with Bome MTP trying to develop presets that would help me integrate these via C4Commander software -- and then I discovered this thread! I will follow your progress with interest..

 

Richard.

Yes Richard, I think you mean thread and not threat but you might be right on both counts :wink:

Steve

But of course! Lol. (I just corrected the typo)..

Hi! I’m an ableton and mackie MCU user, and got a C4 as part of the bargain when I bought the MCU, but later realized that Ableton does not support C4. Was about to give up when I stumbled upon this thread. My thinking is that, if you can get this to work in Cubase, its probably not unlikely that this can work in Ableton as well. Lots of frustrated Ableton users with a C4 out there who would love this to happen.
Have you made any progress?

All the best
Jørgen

HI, I did some work for a user that has some limited functionality using the Mackie MCU protocol.

In general, I can get one row of V-POTs to behave like Mackie MCU V-POT and then maybe use some of the other encoders to do stuff like faders and misc programmable CC functions. It isn’t pretty but it kinda works. The big difficulty is getting the scribble strips working like you would like. The reason is the the text length of a scribble strip on a C4 is shorter than a MCU so you need to strip a few characters. Also it is next to impossible to update all 4 rows of scribble strips (unless you hand code things in MT Pro) since Mackie MCU has no knowledge of more than 8 scribble strips.

If you want, you can contact me via email and if you give me an idea of what controls you want to perform a given functionality, I can give you an estimate.

The other option is to write your own MIDI remote script for the C4. It would be written in Python and be quite involved and expensive unless you wanted to just have some basic functionality. With that, basic functionality is probably more easily achieved with MT Pro anyway.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thank you for the quick replay!

I’ve come to realize that I make better mixing decisions with the computer screen off. So dream scenario would be if I could select a channel with the MCU, and the plug-in parameters of the first plugins would pop up on the C4 with scribble text.
It’s possible to control plug-in parameters from the MCU with pressing some buttons, so I thought maybe it could be possible from the C4 as well if Ableton recognizes it as a MCU. However I understand that it is not so straight forward and the sollution probably will be very hacky since the MCU don’t have any awareness of more than eight text boxes.

How do you go about using python to write a new controller script? Do you have anything I can read to get me started maybe? :thinking:
Could possibly also try to check the interest on ableton forums to collect money to hire you to do it.

Jørgen

Jørgen

For automatic writing of MIDI Remote Scripts, try remotify.io. Unfortunately they will not support scribble strips however,

I’m currently not the best for MIDI remote scripts in Python. I’ve tweaked a few however the time it takes can be extensive (costly for you) and I don’t have a C4 so I don’t think I’d want to take this on. If you have a specific need for programming in Bome, however, reach out to me via email. Again, I would need to rely on you to do testing so the time and cost it takes might be more than you would like.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Ok, thank you for your replays, and thanks for offering to help. I will definitly look into remotify. :+1:t2: I will reach out to you on email if I have a more specific need. Thank you for your time!

Jørgen

OK sounds good. Good luck!

Steve

Hi I have just started diving into Python because of knobkraft (sysex librarian) and mainly because I have a Mackie C4 controller which I want to work with in Live 11. I have opened a repository here ( GitHub - markusschloesser/MackieC4_P3: A Mackie C4 Ableton 11 Remote Script, WiP ) and would very much like to get some feedback/help with this. The scripts kind of works but still has issues.

Now with Live 11 they switched to Python 3 and I actually managed to convert most stuff correctly. I also decompiled the Live 11 / Py3 scripts (_framework, Ableton, Mackie, Push), most of them successfully, which are in another repository.

What I need to do for my purpose is written down on GitHub, but my questions for today:

  1. Are framework and v2 classes usable interchangeably? Can I mix or do I need to stick to one?
  2. Vpot_parameter vs deviceparameter (Mackie vs LOM): I mainly use the Mackie Control scripts as reference and within those for everything parameter related they use “vpot_parameter”. On the other hand everything that Ableton has written, they use what I would use when checking out the LOM model and that is "Live.DeviceParameter.DeviceParameter.value". I cannot find ANY reference on Ableton scripts w re to vpot_parameter and not ANY reference in Mackie scripts for "deviceparameter". Anybody got an idea why that is?
  3. How do I use/generate the stub when I have an XML and use pycharm? Do I actually need this when I have the framework classes added as root?
  4. I ask all this in the hope of fixing my Problem nr 1 on github (Boost error) last device deletion causes error · Issue #1 · markusschloesser/MackieC4_P3 · GitHub . It could also be that fixing this fixes other stuff as well.

Looking forward to your feedback! :slight_smile:

Hi, thanks for your questions, however they all have to do with Python and Ableton Live programming and as far as I can see there is note one Bome related question here.

These questions are probably more suited for the Ableton Live Forum.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Hi Steve,
i am aware and do apologize for straying a bit from the path! :slight_smile:
However as you can see, I am getting somewhere with my attempts and wanted to let the previous poster (@jorgen-s-jorgensen ) know, that there is something he could try, and of course ideally contribute to the making the C4 work without errors.
As there are very few people with a C4 AND Live I am seeking them out wherever I can.
Also this thread has been of tremendous help for me when it came to understanding how the C4 works, so I wanted to give something back. The Remote scripts are now heavily commented when it comes to sysex for encoders, the display etc and could be helpful as a knowledge source.
Best
Markus

Thanks, Markus!

Yes I thought it might help other users which is why I approved the post.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
2 Likes

Just in case, there is a new solution for C4 owners, targeted at Studio One, but might also work with other DAWs:

1 Like

Dear Florian and Steve,
i just want to inform you both, that i did not forget or trashed our C4 Cubase project. The pandemic maked further progress impossible, at least for me. I want to continue the project, if Steve is willing to help me further. I can assure anyone that Steve´s solutions are working with Cubase, but i would like to polish it, to make this project really outstanding.

1 Like

Yes, of course I’m available. Maybe there is something in Richard’s Project that we can find helpful as well. I haven’t looked at it yet.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
1 Like