Improve the integration between any Mackie Controller and your DAW

Jan 24, 2019 | DAW

If you are a mixing engineer and use any Mackie Control Protocol device (like Behringer X-Touch or the original Mackie Controller), you may have wondered at some point if the device could do something different, or if it could work this way, instead of that way, right ? Me too and that’s the reason I was hunting for a solution to improve my controller and my workflow.

When I bought my X-Touch and the Extender to use in Cubase,  I mostly used it to control pan and volume because editing plugins, channel strips or other things is way too much pressing buttons and rotating knobs so I always ended up using the mouse for those things just because it was faster.

Someday I had the idea to use Pure Data/Max to manipulate the information that my device was sending to cubase and then I started building this patch and now my workflow is WAY faster.

I’m explaining in detail in this video what I have done in the patch to customize my controller.

In short, what I did in Max was:

  • Every time I click on the Next Bank/Prev Bank buttons, Cubase also selects the channel so the screen can scroll to the same channel I’m seeing on the controller.
  • Every time a click on Sends, it will press FLIP for me, because I like my sends on the faders and not on the knobs. And everytime I leave the Sends page, it will FLIP back.
  • Customize the wheel to do whatever you want, like clip gain, call macros, fade in time, fade out time.
  • Editing plugins now is a breeze, you just have to click the corresponding knob to open the window and you are ready to tweak the plugin. You don’t need to press the Plug-In page button anymore, select the correct slot (IFX Slot) and then press the page button. Max is doing this automagicaly (HUGE time saver and fun).
  • Same with channel strips. To add a channel strip module you just have to press a button, same thing to edit a particular strip module, just press a button. No more rotating knobs until you find the correct strip you want to edit.

I have not tested this with another Mackie Controller, but it should work ok, since they are sending and receiving the same information.

The patches (for Max and PD) are a bit different from the video because I fixed some bugs right after I made the video, but they work exactly as shown.

If you are on windows, be sure to make the link to forward the MIDI data from Port B (the Main unit) to Port E (if you are on Max) or Port 1 to 4 if you are on PD, as I explain in the video.

You will notice that the PD Patch is more complex than the Max patch. It’s because in PD I have to disable some note off for some notes but not for others. In general, I had to make more things in PD to achieve the same result I had in Max.

If you are not Cubase user, I think you can take the same idea here and modify the patch to do whatever you want in your DAW. The basic idea behind this whole patch is to make Max press some buttons when you press others, or rotate some knob X times to do something.

Let me know in the comments if it worked for you or what you did to customize it to your DAW.

These are the softwares I used in the video:

If you are using PurrData (which is an “extended” version of PureData) instead of the Vanilla PD you will need to use the -legacy startup flag otherwise you will have problems with the pitch bend (channel faders).

And here are zip files with all the files needed: PG_EnhancedMackieControl_FILES

These are the files inside the zip file:

  • Enhanced Mackie Controller Patch – Puredata Version
  • Enhanced Mackie Controller Patch – Max Version
  • Cubase – Generic Remote 2 XML file
  • Cubase – Generic Remote 3 XML file
  • TouchOSC CMC – Clone Template

My Social Networks:

Need a mixing Engineer ?

Are you looking for a mixing engineer for your next project ? I’ve been mixing for a long time and have experience in different genres. It will be a pleasure to talk to you about your upcoming project or if you want just to say hi!

Contact me

45 Comments

  1. Jose Galdran

    Hi. I’m trying to setup my X-touch + x-touch extender following your youtube video. Everything seems to work fine, but there is something i’m not doing right. Every key I press, beside doing the function is supposed to do, I hear a piano note. Sometimes a chord. I guess is something simple but I can’t find what it is. Any idea of what I’m missing? Thanks for your work.

    Reply
    • admin

      If i’m not mistaken, this happened to me at some point. Are you on macOS or Windows ? Max or Puredata ? I think that in my case, what happened was that in Max, in the MIDI Setup, the output “AU DLS Synth 1” had the same letter as one of my controllers (don’t remembter if it was the Main unit or the extender) so, everytime Max was sending information to cubase, it was also sending information to this apple synth. Try to uncheck it and change it’s letter to “-“. Let me know if it worked!

      Reply
  2. Jose Galdran

    Thanks Paulo! Now it works as it should! Let me tell you what I did.
    I work on Mac/Cubase 9.5 and use Max. When I checked midi setup on Max there was no letter assigned to AU DLS Synth 1.
    What I tried is to assign it to letter “e”, and then change it to “-“.
    It worked.
    A couple of questions more if you don’t mind.
    Do the Function keys on the right side of X-Touch work for you? I can’t make them work.
    Otherwise I have my first generic remote created. Insert editor opens, but some of them don’t react to edition. Although they all react to bypass, some of them don’t follow the encoders. It does work in the other way. If I tweak them with the mouse encoder lights follow. I assume is a problem of some plugins.
    As for the jog wheel. I works…sometimes. I created a second generic remote. Input “IAC Bus 3”, output, as I don’t have any Steinberg controller, I assume is X touch Int…?? I spin the wheel and it works two or three bars, then it stops working. If I wait 5 seconds or so it works again. Same with the scrub button. Seems to be kind of “accumulation of data” thing… Maybe the problem is I don’t have the Steinberg CC Controller?
    Anyway thanks again for your work and your attention.

    Reply
    • admin

      Hi Jose,
      The function keys works perfectly here.. I just had to setup it inside the Mackie Controller window to do whatever I want. Strange that it’s not working with you. The Plugin editor works with me all the time.. The only thing that sometimes happens is that it not always open the plugin window which is a cubase buton.. I have to go to the Generic remote and press “RESET” and now it works. For the plugins I use, the remote control with the knobs works everytime. What are the plugins that are not working for you ? Did you try using the “Remote Control Editor” to customize the plugin parameters on the X-Touch ??
      And regarding the scrub, I think you can leave the Output as “Not Connected”. Give it a try.!

      Reply
  3. Darren Tansley (Moonhare Studio)

    Well I think I have it working on Cubase 10, Windows 64bit, using Puredata and an Icon Qcon ProX and Qcon ProX extender. So that is almost entirely the opposite setup to Jose above which I hope proves it will work cross platform.

    I should say that I had exactly the same issue with the piano note sounding when I had a midi channel selected. Whatever function I used (eg transport buttons, dedicated save and mixer buttons etc) sounded a note several times. However I have dealt with this problem in the past when I first installed the Qcon so I wanted to pass on my solution as it may help others and is entirely different to the one above. This is a common problem with the Maxkie protocol and is without a doubt the most watched video on my YouTube channel! https://youtu.be/LD2Q16vFQ8I . This is addressing the general issue but the specific explanation for LoopMidi is as follows:-

    Go into Studio > Studio setup > Midi Port Setup.
    Scroll over to the last colum “All Midi In” and uncheck all the new ports created in Loop Midi
    Click OK to save

    Now everything should work without triggering random notes or fader detunes etc.

    Reply
    • admin

      Thanks for this tip Darren!!!

      Reply
  4. spencer

    Can this work for other DAW’s such as SONAR?

    Reply
    • admin

      To make it work in other DAWs (like Sonar) you have to customize the script. Each DAW implements the Mackie Control Protocol differently so It won’t work out of the box in other DAW, Unfortunately. 🙁

      Reply
  5. Francisco Cuadrado

    Hello PG,
    First, congratulations. What an impressive job you’ve done!

    I’m thinking on buy a Behringer X-touch or an Icon Q Control, and your configuration will help me to maximize the work with the unit.
    I have a couple of questions:

    1. Can the program be configured to send cc controllers to midi tracks? I want to use the faders to send modulation and expression messages while I’m composing, and switch later to use these same faders as volume control for audio tracks. Is it possible?

    2. I’ve read that Behringer has launched a tool to midi map the X-compact, and I suppose it should also work with the X-touch. Have you explored it? Do you think it could be used instead the max software to simplify the configuration?

    Thanks in advance

    PD: Any advice to choose between Behringer X-touch or Icon Q Control? Thanks

    Reply
    • admin

      Hey Francisco! Glad that you liked!
      Regarding your questions:
      1- There is no way to configure (without messing .A LOT with MAX or PD) X-Touch to send MIDI CC data. You can take a look at X-Touch compact that im almost sure you can do that with it.
      2- I don’t think that this software will work on X-Touch. The compact version has a MIDI mode that the X-Touch doesn’t.

      I never used the Q- Control but it seems to be better built and more beautiful (and should work the same way as X-Touch) but it’s way more expensive!

      PG

      Reply
  6. lesslyrics

    Hi PG, many MANY thanks for the effort you have put in this! You very much helped me understanding the principles behind this ‘remote controller mystery’.

    I have a question – is the following scenario possible (X-Touch button PLUG-IN is active):
    – Display under rotating knob 1 shows IFX 1.
    – Pushing that button opens the currently used IFX 1.
    – Choosing a different plugin slot, let’s say 7.
    – Now pushing knob 1 opens plugin of slot 7.

    If at all, could this be done with an F-Key so I could even avoid using Max? I don’t think so…

    Since Cubase has 16 inserts I don’t want to use 16 ‘hard coded’ buttons for every insert.

    By the way, I’m running X-Touch (without extender) on Cubase 10 with Windows 10.

    An answer would make me very happy 🙂

    Best regards
    Rob

    Reply
    • admin

      Hey man.. glad that you liked!

      I don’t think that it is possible to do that (at least in a simple way) because there is no way to know what’s the current IFX that is showing on the display. Maybe with some max/pd patching you can accomplish that, but no idea come to mind right now 🙁

      Reply
      • Rob

        Thank you anyway! So far I found out that in Cubase 10 it is possible to assign X-Touch input and output to the Mackie Control as well as to a Generic Controller. There seems no conflict/exclusion so far and I don’t see a need for LoopMIDI. I can open plugins in slots 1-8 with knob buttons 1-8 and plugins 9-16 with F1 to F8 for example.

        I had to find out how you assigned ‘Ins. 7 Edit’ and ‘Ins. 8 Edit’. I realized, you’ve put plugins there, assigned the values and removed them afterwards. The plugin name will be removed but ‘Edit’ stays 🙂

        Rob

        Reply
  7. KrisK

    I’m thinking about using a control surface with Cubase, and I’m so glad I found this! It looks like you really did a great job.

    I’m wondering if your patch (Max or Pure Data?) could be adapted to fix the problem between Cubase and the X-Touch ONE. When clicking on a channel strip that is outside the current (8-channel) bank of the X-Touch One, it doesn’t synchronize automatically. You have to use the Bank buttons to go to the correct bank.

    I’m familiar with Cubase Generic Remote XML, I know Python scripting and have used other languages, so I guess I could make sense of Pure Data (or Max?) quite rapidly. What do you think?

    Reply
    • admin

      Hey man… happy that you liked!
      In my setup, today, I my X-touch does “auto banking” … so, everytime I click on a channel, my x-touch changes to the correct bank that has this selected channel. It should work on your X-Touch one.
      It’s a BIGGG workaround to make it work, but it works. Unfortunately I was only able to do this in Max.. I didn’t have time to do that in PD. The workaround is to add a WK-Audio controller and send it’s info to Max. This is the ONLY controller that send (via Sysex) the current channel number … so if you click in the channel 120, it will send this information (in text) to the controller.. and in max, we grab this 120, convert it to integer, do the math to find out the correct bank and then “press” the bank button X times. I’ll post here later my updated max script.

      Reply
      • Ole

        Hello.
        How do you do this?

        Best Regards

        Ole

        Reply
  8. Dmitry

    Hi Paulo, thank you for your time and great work, while choosing the controller between two I watched your video and decided to buy X-Touch, because now I know it’s configuration potrential:). I’ve just received device and now I try to arrange averything.
    Could you please answer some questions?
    1. I’m on Windows, do I understand correctly that in all Generic Remotes and Mackie Controls inputs should be loopMiDI port XTouch and all outpoots as X-Touch?
    2. Does your scheme work if I have oly one device X-Touch or I should change something? I use Max buy the way.

    Reply
    • Dmitry

      Regarding 2 question, I mean will it work in cases where only the main device is involved?

      Reply
    • admin

      Hey man.
      1. Yeah.. all the Inputs should be LoopMIDI and Outputs should be X-Touch.. because Max will send the commands to loopMIDI and that’s where cubase should be receiving.
      2. This patch, the way it is is only if you have both the Main Unit and the Extender. You have to do some (small) adaptations if you only have 1 unit (like removing the 16 channels bank size, for example).

      Reply
  9. Paul

    It appears that you have done a great job with this. I am considering purchase of the x-touch and extender. Could you please answer a few questions from a “non-programmer”? I see in the video a lot of instructions on programming Max, etc.. Is this just showing how you built the patches? Or must I actually do everything you did in the video? I guess what I’m asking is what is exactly the procedure for applying the patches you have built. Do I download loop and max and run the patches? Not sure of the exact procedure. Please forgive my ignorance.

    Reply
    • admin

      Hey Paul..
      The video is just how I made it just in case someone wants to improve or adapt. But with the files I provided, you should be ready to use. You don’t need to program anything!

      Reply
  10. Ken

    Hello, I really appriciate your work! You are very kind to provide us with such a geat info.
    I have x touch one and i would like it to follow the channel I click on without banking all the time.
    Could you please help me with setting the WK audio ( I have downloaded wk audio ID) with cubase (8) and max/pd? How should I set up the ports? Which script should I use? And is it very different when setting it up in max/pd than in your video?
    I am very new to this but i would really like to get into it. Thanks a lot for your help!

    Reply
    • admin

      Hey man.. The WK Audio thing is a huge work around and need some scripts from Max (I didn’t have time to even try this on PD).
      I’ll make another post soon explaining the WK Audio thing and i’ll upload the files.

      Reply
  11. Martin

    Dear PG, I’m deeply thankful to have found your patch, as I also was unhappy with some implementation issues of my QCon Pro G2. I have 2 extenders, so I edited the patch for one more extender and deleted some functions I don’t want to use as well as edited some points I like to have. I‘m wondering, why my jog wheel does not react anymore (it didn’t with your original patch as well) but I can live with that, considering the massive improvement of usability of the controller. So thank you again for doing this and sharing it with rest of the world.

    Reply
    • admin

      Hey Martin,
      Glad that you liked the patch! It’s very useful indeed! Regarding the wheel it’s weird. It should work. Inside Max (or PD) are you able to see the Buttons that receive the Wheel midi info turning on and off ?

      Reply
      • Martin Sauer

        Hey PG, unfortunately I have a lot of work to do in other studios during the next weeks, so I won‘t see my own studio to check it out. Making the patch work was the last thing I did last week and I was so happy to see it running, maybe i‘ missed something. However, as soon as I’m back in the studio, I will check it again and let you know. Best regards, Martin

        Reply
  12. Alvaro

    Hi Paulo.
    Thank you very much for this f…ng great job! By the way. I’m using cubase 10 and XTouch + Extender. I’m on windows. I tried to follow your explanations step by step and unable to make it work. I have configured 2 mackie controllers with Loop Midi 1 as input an XTouch as output and LoopMidi 2 as input and XTouch Ext as output. As weel, I configured two generic controllers (in the files there is only the XML for one of them)
    When I tested it on MAC it worked flawlessly. Now I don’t know which steps may Ï skipping.
    Can you help me please?

    Reply
  13. Jack

    Hi There, Great workaround !
    Do you know if i can implement this patch with SSL Nucleus controller ?
    Im mainly interested in the autobanking feature

    Regards
    Jack

    Reply
  14. Sunda

    Hi there,

    As a noob with mapping writing script, you really put in the effort o make it work.
    Don’t know if you or anybody on here is familiar with FL Studio’s patcher/control surface,
    will that work the same as max or puredata?
    Greets from the netherlands.

    Reply
    • admin

      Hey!
      I’ve never used FL so i don’t know if it will work 🙁

      Reply
  15. Alvaro

    Hi Paulo. I finally made it work. Only one question. I have Max and Pure Data. With PD the wheel works as expected configuring LoopMidi Port 3 in windows. In Max there is a loopback error with a lot of data being receiving once I move the wheel and the port mutes in loop midi. Do you know what could be causing the issue?
    Many thanks

    Reply
  16. Wid

    Hi all

    Thank you so much for all this Work and source of infos.

    I have one question though as my searches on many forums led to absolutely nothing
    Is there a way to select 2 channels at the same time on the xtouch (instead of doing it with the mouse in cubase) in order to use qlink faster for instance ?

    Tx for sharing your ideas
    Big up

    Reply
    • admin

      Hey man! Glad that you liked!
      The only way I know to select multiple channels is holding shift on the keyboard and then pressing select for each channel on the xtouch. At least you dont have to click with the mouse.:)

      Cheers,
      PG

      Reply
  17. Cliff

    Hi Paulo,
    I have just purchased an X-Touch and extender and am intending to interface with both Sonar (BandLab) and Reason 10 and upwards. I appreciate that your patch is using Cubase as the DAW but also recognise that your patch could be used as the basis for what I intend to do (assuming Reason or Sonar internals don’t get in the way). One big question I have relates to any recommendation you might have for Pure Data tuition sources (books or web links). I am a professional programmer of more years than I am prepared to admit so any source no matter at what technical level would be useful.

    Reply
    • admin

      Hey Cliff,
      I’m pretty sure you should be able to modify the patch to suit your needs. One suggestion I can give you is to start a patch from scratch and incrementing the patch as you go. You can start monitoring how your software and X-Touch talk to each other (using MIDI Monitor, as I showed in the video) and then try to modify those messages and see what happens. After you get the idea, you can start copying some of my patches to yours. Regarding tuition sources, I have no idea 🙁 I never worked with PD or MAX before trying to create this patch. I was just googling like crazy and watching some YouTube videos and that was enough to get the patch working.

      Cheers,
      PG

      Reply
      • Cliff

        Thanks Paulo.

        I’ll follow your suggestion and “eat this elephant one bite at a time”. It should be fun 😉

        Cheers,
        Cliff

        Reply
        • Phil

          Hey man,

          Awesome stuff! Thank you for posting this. You should get one of those “buy me a coffee” links or post your PayPal so that people can tip you for your efforts.

          I am using your pd patches and ideas to do things with the xtouch and Ardour. One thing I notice is that if I only have the midiin to midiout and sysexin to midiout (in theory all unmodified, right?), then Ardour will not talk correctly to the xtouch – the faders don’t work, the scribble scripts stay empty, and Ardour is not sending anything on its mackie out port. I do see a lot of stuff in the mackie in port. So pd must lose some information on the way. Any ideas? Is midiin and sysexin enough to relay everything what the mackie protocol supports?

          Best wishes from Germany,

          Phil

          Reply
          • admin

            Hey Phill. Gonna add the paypall stuff 😛
            Regarding the PD, the Midiin/midiout + sysex should be more than enough to pass everything to the DAW. Are you sure that every input and output are working correctly ?

            Cheers,
            PG

  18. Phil

    … continuing the discussion in a new thread – I realized I replied to another above…

    To answer your question, I’m quite certain that I connected the ports correctly as I can use all the transports – just nothing on the left side of the Xtouch.

    I came across this: https://github.com/agraef/faust-mcp. I haven’t got a chance to fully understand the pd there, but the mapping seems more complicated than just midiin and sysexin. Have you seen this mcp abstraction yet?

    Reply
    • admin

      Hey Phill, I never took a look at this MCP abstraction.
      That’s really strange that the transport works on the XTouch but not the faders.
      Have you tried with Max ?

      Reply
  19. Alvaro Montón

    Hi Paulo. I’m not able to see anything on X-Touch Extender mini displays. It responds to knobs and buttons but track names are not displayed. Only are displayed if I select on Mackie Control 1 XTouch on midi in and out and on MC2 XTouch-ext on midi in and out as well.

    Any idea?
    Can you send a picture of how you wire the units phisically or a kind of diagram?
    Many Thanks

    Reply
    • admin

      Hey Alvaro,
      There is no mistery on the wiring. They are on their USB. Maybe, somehow, your extender unit isn’t receiving SysEx messages ? It’s the sysex that “starts” the operation.

      Reply
  20. Alvaro Montón

    Thank you so much for the response. So, in your video you don’t have them linked each other through hub? Both units Just directly from USB B to computer? I am on Windows and using Pure Data with your patch.
    The strange thing here is that if I put in cubase MC2 with MIDI in xtouch extender and MIDI out the same there is text on the display and the wheel for example is responding. If I put MIDI in “Loop MIDI port 2” and out xtouch extender not working neither the wheel. If you Accept PayPal no problem at all in paying consultancy hours to set Up these things. I have three months trying to make it work as in your video and I am desperared. I really appreciate your help

    Reply
  21. Francisco Rodriguez

    I just want to thank you! It’s just amazing. I did a modification for a 32-channel fader setup and it works just great.

    Reply
    • Alvaro Montón

      Hi Francisco. Could you help me on this. How did you make it work? How can i reach you? I’m from Spain

      Reply

Submit a Comment

Your email address will not be published. Required fields are marked *

Share This