Mackie control as supported MIDI controller

Hi

According to the Wiki docs, Mackie control is supported out of the box.

However, looking at the code and various messages here I don’t think that’s the case yet?

Update, found the following fork with a driver at zynthian_ctrldev_mackiecontrol.py from zynthian-ui/zyngine/ctrldev/zynthian_ctrldev_mackiecontrol.py at vangelis · chrismatthews/zynthian-ui · GitHub, unclear how generic it is.

1 Like

Hi @jawn

It’s work in progress, my fork may well work but I’ve only tested it on X-Touch. There are a lot of features that Mackiecontrol offer which may not fit with zynthian, as it’s not a mixer.

Here are my comments from yesterday.

I’ll give it another big push at the weekend , as there is growing interest

Which controller do you have?

Hi @christmat, that’s the Zoom R8. Thanks for your rapid feedback!

Zynthian has a stereo mixer with multiple inputs and outputs (groups). Each channel had pan/balance, fader/level, mute, solo, phase reverse, m+s & mono.

I know and I’m certainly not requesting the extra features. But Mackiecontrol has been designed for so much more (Auxs, buses, eq, automation, transport). So my main aim is to make it as user configurable as possible to be a Zynthian controller and not a DAW controller. Square pegs don’t always fit in round holes.
With the new design with yaml files (for different models) I think this can be achieved.

1 Like

Many on their way or already implemented.

They can if you hit hard enough. :wink:

A good aspiration.

2 Likes

Hi @chrismat !

I would like to merge the mackie control driver into vangelis. As you didn’t modify other files, i could do it without risk. Could you send a PR?

For testing i’ve an old “logic control” from Mackie. No USB, just MIDI-DIN-5. It would serve as a good reference because it implements almost every feature from the Mackie protocol. Indeed, this device is probably a kind of “defacto reference” as it’s the original Mackie Control device :wink:

Regards,

4 Likes

Hi @jawn !

It’s not officially supported yet.

Only the picture here. I added the picture to put some pressure over my shoulders and go forward with the implementation, but it seems @chrismat has been faster than me! Nice!

Let’s make this driver official ASAP :wink:

Regards,

2 Likes

Hey @chrismat!!!

It works in my Mackie MCU! I just made 2 minimal changes and it works. Congratulations and thanks a lot for this fantastic driver!!

This is what works nicely:

  • Loading/unloading driver
  • Selecting mixer channels from MCU and from zynthian. Also using the MCU arrows and the big selector encoder.
  • Mute/Solo/Record Arm
  • Channel Balance using the assignable channel encoder
  • Channel Volume using motorized faders (see comment below)
  • Main fader’s volume
  • Transport buttons (play/record/stop)

There are a few issues:

  • Text display doesn’t work
  • Fader’s mixer scale seems to be wrong and bizarre effects happen when moving in the MCU. Changing from zynthian mixer works like a charm and motorized faders move smoothly.

Awaiting your PR to start working on it!

All the best,

3 Likes

Thanks for testing and for the comments, As I’ve already mentioned over the last couple of weeks I’ve rewritten it (same functional set) but a different approach which gives better performance and flexable user configuration, to my sins I’ve not commited it yet. Unfortunately I’m not at my computer until Friday evening, to give you the choice which version you would like me to PR.

“Fader’s mixer scale seems to be wrong“. setting xtouch to False in the settings ini file should correct it.

*Text display doesn’t work“ hmm… that’s a surprise

I’m kicking myself now for still not writing any documentation to explain functionality, it would be handy right now.

4 Likes

Start with specification. Adapt to test scripts. Adapt to user documentation.

3 Likes

It seems the stars are aligning!

Thanks for the momentum @chrismat @jofemodo @riban, once a version is added to Vangelis I’ll gladly test it with the Zoom R8.

PR done!
As mentioned this is my newer version using a yaml file for (nearly all definitions) presently saved next to the driver file, I was thinking that templates could be created for known devices (prehaps under /zynthian/zynthian-data/…/…) and then saved in a user path (perhaps under zynthian/zynthian-my-data/…/…) where users can adapt to their preferences, prehaps later added to the webui.

I promise I’ll start write some documentation soon.

So each ccnum button number is defined as key, the name added so that users knows what the button is named on the device. A command Type: ZYNSWITCH, cuia or mkc (mkc: internal commands/funtions), Commands are obvious for ZYNSWITCH and cuia, but for mkc the command is split with “_” for the function to be called and the argument e.g. command: mute_5 calls self.mute(‘5’).

Examples from the yaml file
21:
name: mute_5
command_type: mkc
command: mute_5
85:
name: transport_nudge
command_type: cuia
command: SCREEN_ADMIN
100:
name: select
command_type: ZYNSWITCH
command: 3

The bug I found with Chain 9 is fixed and @SteveFlesh “Pan incorrectly changing 2nd channel balance” (thanks for reporting it) is also fixed. I’ve still not added the encoder pan LEDs yet.
I’ve no idea why your display doesn’t work, I’ll look forward to your feedback.

It’ll be interesting to here what is the default reading and writing for the motorized faders as xtouch seems to deviate see lines from 665.

  		if self.device_settings['xtouch']:
  			zyn_vol_level = mackie_vol_level / (self.max_fader_value * 2)
  			mackie_vol_level = int(mackie_vol_level / 2) 

Further Reading, I found useful…

For the Video watches…

4 Likes

Supernice code! Congrats @chrismat !
It’s now merged in vangelis branch.

Now, i would try to fix the display text in my Mackie Logic Control. Faders now work OK, BTW!

Regards,

2 Likes