Mackie C4 Pro not working properly in Nuendo

Recently I bought a brand new Mackie C4 pro,I want to use it to control my software Vsts and some hardware synth, but I come across multiple questions and since this device has been long discontinued there is pretty little material I can find on the Internet…so here is my last hope, I will try to describe the situation as clear as I could:

I use Nuendo as daw,linked both midi in/out from C4 to my interface RME 802.I‘ve already downloaded the editor called C4 Commander and try to assign some midi values to those encoder’s to control Arturia Pigments:

Here is what I bumped into:

  1. I can’t find any Midi CC assignment in the “instrument” list(if i am not understanding this device wrong then drag a function from the instrument list to encoder is the only way I can “assign ” something), I checked all the default “Global” midi function and no one is a CC(or constant change) function

  2. But I find out by using the pigment midi learn function that even with nothing assigned on those encoders, they send CC values from 0-31 by default, and send a pitch by push down those encoders,I tried to change those CC values but as I said above,because there is no CC assignment,I can’t edit or change CC values

  3. Then I tried to midi learn those default values in pigments(and other software synths), It can be learned(so the connection is ok), but it functions more like a switch,not a constant value, I turn the knob a little bit, those mirrored values in pigments jumped a big step

  4. Then I open my daw and create a new Mackie Control Device, using RME 802 midi port(which the C4 pro connected to)I found some of the knobs can control track volume in Nuendo by default(3rd bank of the C4 Pro), and function perfectly(can change value continuously), but when I try to mirror the same encoder to pigments, it worked just like before(Like a switch)

  5. Now a single encoder can control two things at the same time, but I only need it to control pigments,I can’t find a way to disconnect those Nuendo control messages, so I delete MCU device from Nuendo, I even close the C4 Commander,but, it,still works!

  6. I saw some one say that if the C4 Commander software isnt opening,the C4 pro wont work,that’s not my case

That’s a lots of weird stuff to consume but I will make this faster by only listing what I want to achieve by using this gear:

  1. I want to create my own “instrument” as preset, assign different midi CC to different encoders, and use different channels/pages to multiply those parameters to control more stuff, Is editing XML and Hexidecimal Value by using an IDE the only way I can do it?
  2. I only want to use it to control vst/hardware, not daw

I know it’s a long boring post and maybe nobody can finish, but if there is anyone who can help, please,I am so frustrated by this device……

Here is the result I want to achieve by using C4 pro:

Ok, i will try to answer most of your questions, but i want to keep it somehow short as i am not in the mood for a long post here… sorry.

1: I dont own Arturia Pigments, so i cant tell you a proper answer here. If you want to use the C4 Commander Software (CS for future explains.) with Cubase, then you will need additional software, that provides you a “virtual” midi-cable. Like the one at 2:48 in your linked video.
Sadly this has a downside, because CS does not operate bi-directional. This means if you change a parameter with the mouse inside a VST/Cubase, it wont be reflected by the C4 and the LED-FeedbackRings around the encoders will stay where they are. CS was written mainly to control hardware synths and for that purpose it is really a great software.

2: Yes, the C4 sends CC numbers from 0-31 by default.
No, a push from the encoder sends NOT pitch (nothing from the C4 sends Pitch on default), it sends Note On/Off messages, ranging from Note Number 32-63, depending which encoder is pushed. In general you can add +32 to the CC number that is used, to get the Note Number. For example, if you push the first encoder in the top row (which is CC number 0), you simply add +32, for the Note Number.

3: The reason for that behaviour is, that the encoders use relative values, instead of absolute values, that most software expects. So a single tick to left or right with the encoder is a ± 64 step, instead of a ±1 step, that is expected by the software. This results in a switch like behaviour, where you can only have either “1” or “65” as a value, but nothing inbetween or over 65, as the next step would exceed 127 (65+64=129), which is the highest value available for absolute values.

4: This works only, because the third row of the encoders from a C4, have the same assignments like the encoders from a MCU Mackie device (The devices that have faders and only one row of encoders and only one display). The Mackie device from Cubase was never meant to work with the C4 (sadly). It is simply coincidence that these encoders work. You should avoid using this Mackie device at all.

5: I dont know your setup, but i assume your “mirroring” from Mackie device to Pigments is still active.

6: No, the C4 can work standalone. You dont need the CS software to work with the C4. You would only need it for the solution, i mentioned above.

What you want to achieve by using your gear:

1: I am sorry, but i dont exactly understand what you wrote here. If you want the same like in the video, then you will need the CS software and a software that provides you with “virtual” midi cables. Mind you, that this video is cheating you a little. This solution dont work bi-directional. The guy in the video never shows what happens if he moves/turn something in Pigments software, but i bet my ass that it will not be reflected on the C4. The LEDRings around the encoders will not show the actual values. Although it seems to me, that this guy does not really know, what he is talking about. He mixed so many midi-terms wrong and described his actions very, very poorly.

Anyway, you need to understand that the only reason he used the CS software is (he although mentioned that without it, the whole thing would be a another story :slight_smile: ) to convert the relative values of the encoders, to absolute ones and these values are send through the “virtual” midi cables to the Pigment software. So the CS software + the “virtual” midi cables work like a “inbetween” software for the midi-communication. This solution works, but only in one direction. If this is enough for you, then you might get it to work. For me, this is only a half baked solution and more of a hack then a solution. Not nearly close to “full potential” of what the C4 offers, but better then nothing.

2: You cant control both VST and hardware at the same time. This is not possible with this solution. You need to switch from either VST or Hardware, but not both at the same time.

Last words:
Dont be frustrated by the C4 device. In my opinion, it is the best midi controller outthere in that price range. Sadly it is not a “works out of the box” thing. You need to know how it operates.
If you try the new invented midi-remote in Cubase 12, you can use at least the encoders without any big problems, but to use the LED-Rings and the display, you will need to use the API from the midi-remote and program it with JavaScript. There is at least one script for the C4 ready here:

This script controls the EQ´s of banks with eight channels at once. It is a good showcase, of what you can do with the midi-remote and the FULL potential of the C4. It works bi-directional with LED-Rings and displays.

Although @Martin.Jirsak and myself are working on a C4 script, that will offer way more and is working more or less like a Mackie device. I just cant tell you, when it will be finished as @Martin.Jirsak is the master here :slight_smile: .

Hope i could help.


Thx a lot!I checked lots of your post and know a lot more midi knowledge then before…yes I think C4 pro might be the best controller with big screens and all those knobs in the market,as long as I can get it work,I tried bunch of things but still it cant work properly,this time I have some screencuts to show you:

1 So C4 send “relative” cc message by default,if I want to change that to a absolute CC value with a fixed cc number(like cc 43,0-127),should I just drag some value(read the hexadecimal to get the cc number)from the “instrument”list in C4 commander(like pic 1 /2below),or I have to use some midi translate software and learn all those translation rules(like pic 3)?The drag method seems useless(I already tried to use loopmidi,the virtual midi port),no matter what value I drag from the instrument list to the encoder,it always behave the same(which means send the default relative cc value in default cc number),pretty annoying(pic4)

2 about Mackie Device,I delete it from Nuendo Studio,so now it can not control daw right?

3 There are too many different places to set midi port and midi channel,especially in C4 conmmander I can choose port from setting manual and each value in “instrument” list,I can choose 2 channel message in instrument value…which is confusing…


Now,my only goal here is to make those encoders work correctly(which means sending absolute value in a correct channel),I dont need position feedback from daw(for now),can you please tell me which step I am doing wrong and how to achieve my goal?

Thx by the way,I saw you post many C4 related topics in different forums,which really helps me understand a lot about how midi works…and seems you are the only one with mature solutions…so please help me,I really love this device for what it could achieve!

Hi jaychoupp,

Lets start CLEAN first. Your pictures show a lot usage of stuff you simply dont need here. I guess you read too many of my posts :slight_smile: .

1.) Start with removing Mackie devices. Select each Mackie device and click the TRASHCAN to get rid of them. You wrote you did this, but i see three Mackie devices in your screenshot. Please trash all three.

2.) Now to the Commander Software. Your 6th. screenshot “C4 Commander- Settings / Control C4” is wrong configured. Here you need to tell the software, how your C4 is connected to your midi-setup in the real world. I cant tell you what is right here, but it is wrong to put the “virtual” midi cable here. It must be your RME 802 interface.

3.) I see that you use Bome Midi Translator Pro, this is good because you can create “virtual” midi cables with it too. Stay with this software, but dont use the loopMidi software then. The loopMidi creates “virtual” midi cables too, but it can only do that. With Bome MTP we can do way more later, as it has the right tools we need for the C4. So if you have any loopMidi “virtual” midi cables remove them and after that deinstall loopMidi.

After doing all above, please try to follow my guide here, even if it is german and start with STEP 5:

At STEP 8 you need to take care of the boxes on the right side of the screenshot.

The Midi Output Box: check the Bome Virtual Port 1 → Bome Midi Translator 1 Virtual Out box
and check the midi out box of your midi interface where the C4 is connected too…

The Midi Router Box: Click the left Bome Virtual Port 1 midi connection and drag a cable to the right Bome Virtual Port 1 midi connection.

All should look like in the screenshot now, except instead of my midi-interface, your midi-interface is checked in the Midi Output box.

Now we go back to the Commander software. Before we go further, let us clarify some things:

You need to be aware that the Commander software is mainly a masking/mapping tool for the encoders. We need it to convert the relative values into absolute values, but it would be intelligent to also keep the “original” CC numbers of the encoders. The CC numbers that are used by default, when you just turn on the C4 and dont use the Commander software at all. This way it will be easier for us to be sure that we both have the same settings and we can easier refer to upcoming screenshots. Basically you can throw/map any CC assignmment on to a encoder with the Commander software. Ok, back to tutorial:

STEP 9 and 10: We create a new layout, by pressing Edit and in the Layout box clicking New. Click the “untitled” layout and click “save as” and name it Retrologue.

In the Assignment box, we click on the Midi-Controllers folder and keep it selected just like in the screenshot. For Midi-Out, we choose the “virtual” midi-cable.
By doing this, any Assignmment from the Midi-Controllers (folder) will use the “virtual” midi-cable as output.

Now drag and drop “Bank select” onto the first encoder in the first row on top. I will stop here and for the first test, use only this encoder as a test.

So now we close our layout by clicking “<< Run” in the Commander software. The Commander software will ask you to save the layout, confirm with a “Yes”.
This is very important, because only then, the C4 will also use our new Assignment. Only then, the C4 is armed and in “running” mode.

Start Cubase with a new project. Create a new Retrologue instrument.

STEP 12: As Midi In for the Retrologue choose the “virtual” midi cable. Open the VST-instrument and right click for example the Cutoff. Choose “CC learn” from the menue. Now turn the first encoder from the C4. If all did go right, then the encoder should now control the Cutoff from the Retrologue.


Thx a lot!I will try your method this weekend! :+1:

Another 3 hours with no luck…I think I followed each step(only without testing it in cubase,but I use MidiOX,a software that can detect midi input message…the result is the same,only default value are sending,no matter what value I “masked” inside c4 commander…I will post every single thing I did…

1 Change C4 Commander Midi port to the hardware midi port I‘m using now(although I kinda changed it but not show you last time)

2 Editing the Bome midi pro as pics below:open both virtual and hardware midi port in Bome,and made a connection between 2 virtual midi in/out ports


3 Mask a random CC value from instrument list(I tried bunch of different values,both global and from other instrument template)Choose this virtual cable in C4 commander and then click “Run”(if I can see this virtual cable then I guess step 2 is correct),I even open the “value” mode to check if C4 sending value continuously on C4‘s screen,yep,on the screen it’s always correct

4 Open MidiOX,check the incoming value in PC,nothing changed,still sending default message from 0 to 31 on different knobs,channel 1

5 I tested it in nuendo,no luck either,but during these 3 hours I do bumped into a weird situation,just once,after I saving a template in C4 Commander,click run and turn a knob,the incoming midi cc value start refreshing very fast,kept sending new message without stopping(I just turn the knob once),and within those message I saw the channel number I masked at that time,in between with the default channel 1,large amount of data exchanging and transmitting very fast without even touch the knob,that’s the closest “success” I get till now,and it only happened once

I‘m starting to doubt that this machine is malfunctioning…but I think it can work properly because when I set this device as a MCU device in nuendo,the 3rd row work perfectly(although that‘s an accident),and it’s a brand new stock…so,what happened to it…I almost spent 30 hours to make this thing work…

Hello, jaychoupp

If i look at your screenshots, then i wonder about the MidiOX screenshot. If MidiOX is really monitoring the “virtual” midi cable (i doubt it), then it is also monitoring on the wrong midi-channel (channel 1). Because on your screenshot, where you choose the “Sound Release Time” CC assignment, i see it is set on midi-channel 16. If you want to check properly, you need to check the “virtual” cable and not the C4. Its all about this “virtual” cable.

In Nuendo please check if the “virtual” cable is active:

I also spent 1-2 hours yesterday for your post. I did this last time two years ago. I still managed to get it working, even better then last time.

Also, do you keep the Commander software and Bome MTP running? They need to run in background, while you are in Nuendo or monitoring with MidiOX. Did you save the layout in the Commmander software? If so, please use a unique name and not “untitled”. How i am supposed to help you, if i see three layouts with the same name? Check that you use the right layout while running the Commander software.

1 Like

Thank you for your time!I will do what you told me tonight!Hope this time it will work……

Hey U-man,I tried your method again and this time it worked in Nuendo!But new problems happened…

Just like you said,even I masked another value in C4 commander,C4 can still send a default value in channel 1…which means I must set the midi controller as virtual cable to control the vst,other wise those values may jumping again:

But if I do this,my midi keyboard cant play this software synth…which is meaning less to me…

Now from what I tested,if I changed the settings to“all midi inputs”,some of those values will behave weirdly(this time they behave weird in different ways,some of those are still like switches,some of those can effect other values even if I just touched one knob),but some of them are not,which I cant understand(pic 1 is correct no matter what controller setting I‘m using,pic 2 only worked in virtual cable mode,then pic 3 is like pic 1)

When I changed midi controller to our virtual cable,they all function properly

So,is the default value causing this problem?is there a way to filter those default value out?

Another question is,how can I change those Note on/off values to different Pitches or other values in C4 commander?Since one knob can only mask one value

I think those are only questions I left for this device,thank you so much for your time and your thorough solution!

Hello jaychoupp,

First of all, i am happy that you got it working. So congrats for that.

Yes, the default value is causing the problem. Yes, you can filter those default values out.

The C4 should NOT show up anywhere in your Nuendo: studio setup–>midi-ports.
Since we cannot use the transmitted “relative” values from the encoders, it does not make sense to have it anywhere in your Nuendo at all.

You use only the “virtual” cable with the masked assignments from the Commander software, as they send “absolute” values that Nuendo understands.

Note On/Off values, for example PUSHING a encoder, are not supported by the Commander software. You maybe can get this to work, by editing the XML file for your layout. I never tried that.
This means if you use this discussed solution, you will lose the PUSH function of the encoders completely.

For me it is important, that you understand what we do here and why. Only then, you dont need to spend hours with some configuration. The here discussed solution is just one way to Rome. It has its Pros and Cons. Two years ago, this solution was for me the easiest solution, to get something out of the C4, that is useable in Cubase. Even today, i would recommend this for beginners, as you have a software that can manage the encoders and scribble text to the displays very easy and to your like.

The question for you is, will this solution be enough for you?
Did you try the following:
What happens if for example, you map Cutoff and Resonance of one VST and you open another instance of the same VST. Do the mapping work for your new created instance too?
Or what happen if you remove/delete a mapped VST and create a new (same) VST again. Do the mappings still work?

Hello u-man!I tried both of your questions and it all worked well I guess…but only in VST which had a midi learn function…

And I underestimated the difficulty to achieve all my goal…Now I have 2 more questions😭

1 I want to use C4 to control insert plugins
2 I want to use C4 to control hardware(Elektron RYTM specifically now)

1 I’m new into this“hardware controller” stuff and I suddenly found out Nuendo dont have a built-in midi learn function for insert plugins,guess what I’ve been using nuendo for nearly 10 years and that’s the first time I realize I cant midi learn a cc value directly inside insert plugins…then I found out there is a function called Remote control editor(I dont want to use quick control,neither can I find a way to QC insert plugins)which do has a learn function,problem is,It has no response to C4,even if I mapped all those parameters in Studio- Generic Control…and I cant find a insert destination in Generic Control - Output column

2 Then I start with the destination I can find,which is RYTM,read the manual,check
the right cc value and channel,add all those cc values by editing xml(I even learnt how to count hexadecimal and you can see the result is correct),but still no luck,dont know if there is something wrong about my settings


With your help I really achieved and learnt a lot within one week,now at least I can control Vst instrument properly by using C4,if only I can control insert plugins and hardware,this device will be the ultimate midi controller Im looking for!

I think this time I will have no more questions …I hope so hahahaha :sweat_smile:

Er I solve the second one…I just need to assign a destination to the output in nuendo,and seems those destinations including all stuff I can control,good,only one questions left :smiling_face_with_tear: