MackieControl Explained: How does an external controller communicate with the DAW?

Поделиться
HTML-код
  • Опубликовано: 13 май 2021
  • In this video I will explain the MackieControl algorithm that is commonly used by external DAW controllers (MCU, Behringer Controllers). For the demonstration I use Ableton as DAW, but the analysis can be done the same way with other DAWs such as Cubase, Sonar, Fruity loops, Reaper, Logic Pro, Pro Tools, etc. The MackieControl Algorithm can be used to create a universal controller for any DAW using Python, Arduino, C or any other programming language.
    Small correction at 14:45
    What I mean is that we need to mirror the MIDI from the DAW to a virtual MIDI port so that it can be received by MIDI-OX.
    MackieControl documentation
    sites.google.com/view/mackiec...
    MIDI analysis tool:
    www.midiox.com/
    MIDI loop tool to analyse MIDI sent by DAW:
    www.tobias-erichsen.de/softwa...
    MIDI Note table
    www.inspiredacoustics.com/en/...
    Handy tool for Decimal-Hex-ASCII conversion
    www.branah.com/ascii-converter
    List of MIDI Control Change messages
    www.midi.org/specifications-o...
    Alternative communication for Ableton using M4L:
    studio.ruclips.net/user/videopBRe...

Комментарии • 39

  • @nathanieldeshpande
    @nathanieldeshpande 9 месяцев назад +2

    Thank you very much for taking the time to go through this for everyone. This is such a niche topic, and so well explained. Very much appreciated! Thank you again

    • @mothunderz
      @mothunderz  8 месяцев назад

      Glad you enjoyed it!

  • @nicsi31
    @nicsi31 3 года назад +3

    Well explained and detailed video! You channel is just amazing and keeps on getting better.

    • @mothunderz
      @mothunderz  3 года назад

      Thank you very much for your feedback Nicsi. Good luck with your project!

  • @owenchaim610
    @owenchaim610 2 года назад

    Excellent explanation. I found the sysex portion the most interesting. It really helped connect the bits and pieces I've gathered elsewhere. Thank you!

  • @jeppesohn
    @jeppesohn 2 года назад

    Thank you for sharing man. Huge time Saver for me. Cheers!

    • @mothunderz
      @mothunderz  2 года назад +1

      Glad to help! Thanks for the feedback :-)

  • @mestari33
    @mestari33 4 месяца назад +1

    Thanks, great info!

    • @mothunderz
      @mothunderz  3 месяца назад

      Thank you for the feedback!

  • @techxartisanstudio
    @techxartisanstudio 2 года назад

    Keep going, man! Great one!

    • @mothunderz
      @mothunderz  2 года назад

      Thank you for your feedback, will do :-)

  • @pdppdp3854
    @pdppdp3854 Год назад

    excellent video!! thanks!! really helpful!

  • @LewisWolstanholme
    @LewisWolstanholme 2 года назад

    Super helpful video thanks so much

  • @WaldemarBurg
    @WaldemarBurg Год назад

    Thank you so much!

  • @hobbychanel5798
    @hobbychanel5798 3 года назад

    Good video trends 👏👏👏

  • @haidar6280
    @haidar6280 2 года назад

    Hi, thanks for a great video. How would it be possible to get my DAW to communicate to my Teensy LC midi control surface its transport control status, and make my mute/solo/record LED's sync to this? Would really appreciate your help with this!

    • @mothunderz
      @mothunderz  2 года назад

      Hi Haidar, yes, that is definitely possible. In the vid below I show how to control your DAW with a phone. Basically you can do exactly the same with the Teensy. The good thing is that you wont need loopMidi to bounce the midi signal back into the computer as you can communicate straight away with the Teensy MIDI interface. Good luck with your project!
      ruclips.net/video/J5nWvlynKTM/видео.html

  • @lulikastrati5911
    @lulikastrati5911 6 месяцев назад

    Thank you for this. I have a Maschine Mk2 which controls the faders, panningg and transport well, but i cant get it to control the the plugins or use the pads for drums... not sure if this will be possible, but I wil update here if it works

    • @mothunderz
      @mothunderz  6 месяцев назад

      Sounds like a fun project! Good luck and let me know if it worked out :-)

  • @pspexperts
    @pspexperts 3 года назад

    Really helpful video. I am building my own Arduino based midi controller and would like to print the selected track name to an LCD. Is it possible to read SysEx messages and convert them to text on the arduino?

    • @mothunderz
      @mothunderz  3 года назад +3

      Hi Ishaan, yes that is possible. I made a small example for you, please see the link below. This will receive the track names through the MackieProtocol and write it to the serial monitor. You do need an Arduino with two USB interfaces for this code (one for the MIDI and one for the serial monitor). So the only think you would need to do is write the track names to the LCD instead of the serial monitor.
      github.com/mo-thunderz/Mackie-Control-MIDIUSB

    • @pspexperts
      @pspexperts 3 года назад

      @@mothunderz Wow! I did not expect you to go out of your way to write an example for me. I really appreciate it. Before your reply, I came across a midi library called Control Surface. The library documentation states that it has a SysEx send and receive function. Do you think this library would allow me to to use an arduino with a single USB interface such as the Sparkfun Pro Micro?
      Library Documentation: tttapa.github.io/Control-Surface-doc/Doxygen/index.html

    • @mothunderz
      @mothunderz  3 года назад +1

      Hi Ishaan, a MIDI interface takes up a serial port and thus on a board that has only one USB port you can use the USB port for either USB-MIDI or for the debug console. I just used a Due because it makes debugging easier as you can use one port for USB-MIDI and the second port for the debug console. As you have your own LCD screen you dont need the debug console port and you can use an Arduino with a single MIDI interface (just delete all the comments about the Serial interface). The code I provided will work in essence on any Arduino as long as you make USB-MIDI work. The Arduino Micro does have native MIDI support, so that should work. I dont have one here so cannot test that for you, but I am sure there is lots of information online on how to make the MIDIUSB work for the Micro. You can of course use Control Surface as basis as well, however, from what I have seen that is based on the exact same MIDIUSB library, so if one works, the other works as well. By chance I actually implemented this code for some time ago. I have uploaded it to Github as well:
      github.com/mo-thunderz/Mackie-Control-MIDIUSB/tree/main/Mackie-Control-Universal-Reverse-Engineering
      However, I would keep it simple and stick to the first code I sent you (unless you plan to really use the many additional features that Control Surface has to offer). Good luck with your project!
      MT :-)

    • @pspexperts
      @pspexperts 3 года назад

      ​@@mothunderz Thank you for clarifying. I thought you meant that I would need to use a second arduino to drive the display because of port limitations. I had one last question that I hope you can answer. My goal for this controller is to use a main button to toggle the looper plug-in on a particular track. I would then like to press a secondary button, cycle to the next track, and use the main button again to activate the next track's looper. I am a little lost on how to do this. Basically I need to be able to change the midi sent from the main button whenever a secondary button has been pressed

    • @mothunderz
      @mothunderz  3 года назад +1

      Hi Ishaan, I am not familiar with the looper plugin, but it seems to me that this is not a generic DAW function, but an external plugin. The MackieControl algorithm is made to interface with the DAW. There are tricks to control a plugin, but in most DAWs there are more efficient ways to communicate with plugins. I use Ableton and that DAW allows you to map virtually anything to MIDI CC, so instead of going through MackieControl you can just send MIDI CC messages to the DAW and map this to control effects on/off and its parameters. MIDI CC of course only has 128 values, so if you more granularity, another option for Ableton is to use Max4Live:
      ruclips.net/video/pBRe2xz7dgQ/видео.html
      Good luck with your project, and let me know if you post a video of the result!

  • @houmangf
    @houmangf 5 месяцев назад

    So tnx for this great video! where can I find all ableton cc values for nektar pacer?! Is there a chart or something like that available?! Because I couldn't get many of cc values with this method! And I really don't know why! For example I get record arm of tracks or play and record button but not solo or mute... and many of them!

    • @mothunderz
      @mothunderz  3 месяца назад +1

      Sorry to hear that for the nektar pacer it did not work one way or the other. Unfortunately I dont know this device so am afraid I cannot help here....

    • @houmangf
      @houmangf 3 месяца назад

      @@mothunderz anyway, so tnx for your time!

  • @showbox5725
    @showbox5725 8 месяцев назад

    How do we record and in what? I have an old tascam 16 track sound processor

    • @mothunderz
      @mothunderz  8 месяцев назад

      This video provides a basic explanation on the MackieControl communication interface. This is useful for Digital Audio Workstations like Cubase/Logic/Cakewalk, etc in combination with an external controller. It will not be useful for a stand along tascam processor.