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
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.
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
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!
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.
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.
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’).
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.