Duplex: Layout For Mackie Control Universal Pro


(Rent Demon) #1

I finished my links between renoise and my MCU Pro this week.

Tough i will share it if someone need…

If you are used of duplex you should know what to do with those files.

I use the actual duplex version ( not the beta), and i needed to modify 2 files in the Duplex code. Those files are under “core modifs” folder.

I couldn’t make work the displays of the MCU for now. I’ll keep invastigating for that, but i’m kind of pessimistic about the result.

Anyway this layout give me good controls during masterisation and live sessions too.


MCU display support
(Rent Demon) #2

Hi to…myself apparently…as nobody seems to use Mackie Control with Renoise

Anyway, here’s my status for now:

i finally succeeded sending sysex messages to the Main LCD display.

For now, i only display track names under “Mixer+Panning Configuration”, and more interesting Effect Devices Names (works for VST’s) with their params names and values, and also Presets numbers, soon preset names.

This (display implementation) was the most difficult part for me, but now that i’m sure i can display almost any Renoise Variable, so many ideas are coming to my mind…

I’m thinking of making a good suite for MCUPro with Duplex, with certainly its own ‘Duplex Application File’ so i’ll not have to modify the core files at everyupdate! I want to modify the Effect App to control the Instrument FX devices, as it works only for Track Devices for now. I will probably use the NOW application as the MCUPro have many buttons that should be used. Some controls (buttons) will be duplicated in the diffferent config files like the transport ones. I also have some other ideas with the display, but i’m afraid the latency it generate will not allow much traffic!

Anyway, i’ll not be able to code for 1 week, so any of you can make suggestions about the layout and/or the controls and/or displays, within my capabilities.

For Now, All faders are working, v-pot feedbacks also. Their feedback’s CC indexes are offseted by 32 so that’s the only reason i changed ‘MidiDevice.lua’. I can display whatever i want on the main display. I didn’t investigate deep yet about the 7 segments digits displays, only failed sending to the MCU some MMC clock frames. If you have any tips for using those 7segments please help me!


(danoise) #3

Wow, cool stuff.

I don’t know how many have such a controller, personally I’m only aware of Satobox’ work on the (less involved) Mackie Control template.

i finally succeeded sending sysex messages to the Main LCD display.

Great!! I’m curious to see the implementation, as I’ve only got software based (tablet) controllers that could display text.

Ideally (for Duplex anyway) the implementation details could reside in the MCUPro “driver” class. But this is of course something that would require a generalized way to send text, including how to specify special characters, linebreaks etc. In the longer term…

I’m thinking of making a good suite for MCUPro with Duplex, with certainly its own ‘Duplex Application File’ so i’ll not have to modify the core files at everyupdate! I want to modify the Effect App to control the Instrument FX devices, as it works only for Track Devices for now. I will probably use the NOW application as the MCUPro have many buttons that should be used. Some controls (buttons) will be duplicated in the diffferent config files like the transport ones.

Applications are full featured lua files, having just an entry point (__init) and a few required methods. So yeah, it’s certainly possible to sidestep the Duplex internals and communicate directly with the hardware (if this is what you intend).

However, you will miss out on various I/O optimizations - side effect being, that the Duplex core code can be quite hard to decipher…

I also have some other ideas with the display, but i’m afraid the latency it generate will not allow much traffic!

I would probably create a queue system, in which messages are scheduled for transmission and transmitted with regular intervals (lua has approx. 10 updates per second). This way, you’ll avoid choking the bandwidth but of course, add a little bit of latency. Not that it should matter much when we’re just talking about display updates?

Their feedback’s CC indexes are offseted by 32so that’s the only reason i changed ‘MidiDevice.lua’

Incoming and outgoing CCs are not the same on the MCU? A more clean approach would probably be to overriding that particular MidiDevice method in a dedicated MCU class.

Device classes are located in the root of each controller folder, e.g. the Launchpad has a little extra code to handle color LEDs

I use the actual duplex version ( not the beta),

You are aware that the most recent beta has support for 14-bit CCs and NRPNs? Not sure if this applies to the MCU though, or if it’s using pitchbend for those high-res sliders. Anyway, I’ll give it a spin with the latest version too (0.9.5)


(Rent Demon) #4

Hi Danoise,

didn’t find attachement file option on reply post…so i could send you my last progress…

You have to know that i’m not a programmer at all, so my code is very messy, and i try tones of thing before i make any little step!

There’s no real implementation of sysex sending, i made it directly from the update functions of the applications i used for the test (effect & mixer).

I don’t like that and i’m sorry, but that’s the only way i understood for now.

I tried the 0.9.5 beta version, but my faders are not working sending in any “mode”(of fader type). So i did continue with the stable version.

Yes ingoing and outgoing CC only for v-pot are different. Don’t know why but it is. I understand what you mean by overriding MidiDevice, but i don’t simply know how to do that.

About the MCU Pro hardware itself, you cannot find at all any midi map. I’ve done tones of researches online and never found anything. I used MIDI-OX bridged between the MCU and Ableton, and i caught sysex strings “on the fly”. After some tests i found the common pattern, and the starting position of the things you want to write.


(Rent Demon) #5

stupid i am…here is the files… :slight_smile:


(Rent Demon) #6

ok here i am again…

i made some modifications on my code.

There is no “Duplex Files” modified anymore. All modifications for the LCD display are in specific applications for the MCU. The CC callback offset is directly managed in my MCUPro class.

So here i am so far :

  • 2 modes (configurations) : Mixer and Effect

  • Applications used : Switch Configuration, Transport, TrackSelector, many MidiAction.

  • Applications created : Specific Mixer and Effect for managing displays.

  • Almost all buttons assigned. Some will probably change in future when i’ll make more modes.

  • In “Mixer Mode”: the V-Pots are used for tracks panning, the main dispaly shows track names (2 lines of 6 characters max for each track).

  • In “Effect Mode”: V-Pots are used for changing parameters, main display line 1 shows selected track name, selected device name, preset number and preset name. Line 2 shows parameter names up to each assigned V-Pot.

I’m still failing on using the 7 segments displays with MMC sync. Hope i’ll find a way of using it some day…

Next goals:

  • Use the 7 segments display for sync.

  • Use more Applications (NOW, Repeater, Recorder, Rotate,…)

  • Make it work with last Duplex Beta.

Files:5594 MCUPro.zip


(Rent Demon) #7

Hi again,

made some test and found that the time counter of the MCU don’t support any MTC or MMC protocol.

But i found a way to display numbers on it by sending midi messages (not sysex).

The thing is i don’t have any idea how it can be possible to link MMC/MTC messages to those specific midi messages i found.

I may need some help from someone who had this knowledge.

Maybe Danoise ? :wink:

Here is what i found:

The MCU time counter is a succession of 10 digits. And the assignment zone is 2 digits.

If i send message “B0 40 31” --> displays “1” on last time counter digit (digit 10)

If i send message “B0 40 32” --> displays “2” on last time counter digit (digit 10)

…etc

If i send message “B0 41 31” --> displays “1” on time counter digit 9.

…etc

If i send message “B0 49 31” --> displays “1” on time counter digit 1.

…etc

If i send message “B0 4A 31” --> displays “1” on assignment digit 2.

If i send message "B0 4B 31é --> displays “1” on assignment digit 1.

So please folks i any of you got an idea how to send midi messages in real time according to song position and/or song timing, let me know so i can finish the complete support for the MCU.

Any tip is welcome!

Thanks!!


(Rent Demon) #8

Ok Time counter is working now…

I made my own transport application with time counter display management…based on existing variables “bars”, “beats” and “fractions”. It’s working as i wanted, only “fractions” displays are not refreshing quick enough for now while playback (working while navigating into the pattern lines).

This is for sure due to the update frequency that my application cannot follow. It’s not a big problem for me, as i have most importants infos (bars and beats) working well…

I’m pretty satisfied by the different displays now (main led + time counter). I’ll focus on adding existing applications into new configurations now…


(Palo van Dalo) #9

Hey, I’m very interested in buying a one too.

I am not far from building my own midi controller with an Arduino, but the Mackie looks like it fits my needs.

I need a Controller with dynamic labels, and also the ability to update the knob values from within the daw,

for example :

I’m on the first DSP (Filter) in a Track -> all parameters are displayed on the labels (also the correct values are set) on the mackie,

I’m switching to the next DSP (Delay) in the track -> all parameters of the new DSP are displayed on the labels (als the correct values are set) on the mackie,

I change a parameter in Renoise (GUI) and the parameter changes also on the mackie.

And of course I change a parameter on the mackie, the parameter will be updaten in Renoise :smiley:

Is that possible right now? can it theoretically, I would help you coding of course.


(Rent Demon) #10

Hey, I’m very interested in buying a one too.

I am not far from building my own midi controller with an Arduino, but the Mackie looks like it fits my needs.

I need a Controller with dynamic labels, and also the ability to update the knob values from within the daw,

for example :

I’m on the first DSP (Filter) in a Track -> all parameters are displayed on the labels (also the correct values are set) on the mackie,

I’m switching to the next DSP (Delay) in the track -> all parameters of the new DSP are displayed on the labels (als the correct values are set) on the mackie,

I change a parameter in Renoise (GUI) and the parameter changes also on the mackie.

And of course I change a parameter on the mackie, the parameter will be updaten in Renoise :smiley:

Is that possible right now? can it theoretically, I would help you coding of course.

All of what you said is working on my MCUPro with my Duplex modifications.

It is still not perfectly coded but it works (i mean i’m sure some of my code can be done in an easier way…).

As i prefer creating music than coding, i don’t really know when i would take time for making it more simple. Anyway as it work as you asked (as i wanted!!), i’m satisfied for now.

Updates are working both ways “on the fly” (from renoise to MCU and from MCU to renoise to MCU). I display selected DSP Name, preset number, preset name, parameter names.

I don’t diplay the values on the main screen but on my knobs lights. It was a better way for both refreshing time and space available on the main screen.

I recommend you to find an MCUPro (the grey one), as i’m pretty sure some midi notes and sysex messages will need to be changed for other versions. I got mine on ebay for 400€ and it work perfectly!

I’ll post on this topic the last update when i’ll reach home at the end of this week, so you’ll be able to put an eye on it!


(Palo van Dalo) #11

I found out the BCR2000 also would do it, without the labeling of course. I just wrote a small script which works fine on midi dumping. I think I’ll use the BCR2000 because I’ll get it for almost nothing.

But maybe I’ll buy myself a MCPro some day.

Thank you


(dplduffy) #12

Hey Rent Demon, do you have a current version of the code? or is that last .zip what you’ve got? I’m thinking of using MCU to talk to my Ableton Push display and PXT General. I think your code would be a great place to start.

Thanks for what you’ve done!


(Rent Demon) #13

Hi everyone,

sorry i didn’t visit this page for a long time.

My MCUPro duplex implementation is working very fine since last posts, but i’m still using Renoise 3.0.1 with Duplex 0.99

I just tried to test it with Renoise 3.1 and Duplex 1.0 but i got some errors about some XPos nil value…

I may take a look at that in the next days, but as i’m not a real programmer i may be lost in my own code…lol…i don’t even know how i succeded coding that last year.

Anyway if someone want to test it (remember RNS 3.0.1 & DPLX 0.99) i uploaded the files…


(beublo) #14

Unearthing an old thread for my first post haha.

I’m just moving to Renoise and was worried my most expensive piece of gear, a Behringer X-Touch, would be next to useless, so I’m glad I found this thread. :slight_smile:
'm going to take a look at your modifications and try and improve from that. I guess I’ll post whatever I come up with, if I do, in case someone else is interested.


(pigdogs) #15

I’ve got a Mackie MCU - so yeah.


(Rent Demon) #16

Hi Renoise members,

after all those years, i’m resurecting my own thread!!!

For now, I still use RNS 3.0.2 and Duplex 0.99 with my MCU Pro applications and everything works fine for me.

But i decided for this new year to spend some time updating my files to be used with latest RNS & Duplex versions.

So expect to have some news about that in the next weeks…and by the mean time, if any of you had made some progress with Mackie Control devices, or even have any ideas of usability of the device, please share your thoughts with me.

Thanks…


(Rent Demon) #17

Hi All,

it took me less time than expected to make work my MCUPro layout with Renoise 3.1 and Duplex 1.05.

It is pretty much in the same state as it was 2 years ago, you can give a try…

I’ll try to improve it in the next days…


(Rent Demon) #18

well,
it is not in the same state as before…the automation isn’t working from the MCUPro.
when i want to change a fader position while in record mode, it triggers an error from the automation.lua file,

.\xLib/classes/xAutomation.lua:114: variable ‘xStreamPos’ is not declared

didn’t even noticed this xlib…i need to take a look at that but:
my code is like 4 years ago and it did handle the automation at that time, so in term of compatibility with automation functions,
if someone have any tips about that…it can save me some time…

Sorry for spamming…lol
If you have a MCUPro and want to try it go ahead with duplex 1.07 that fixed my error…

com.renoise.Duplex.v1.07b.API5.xrnx

Thanks Danoise…


(boonier) #19

Has the panning been sorted out for this yet?

I’ve a newish controller (Nektar T6 Panorama) that uses some of the MCU spec, but the panning seems to be disabled in the stock Mackie Control config/layout that comes with Duplex installs. The controller outputs 1 for CW and 65 for CCW encoder turns. That seems to be the spec right? So this is relative?

Does this config/layout fix that?

Thanks


(Rent Demon) #20

Hi Boonier,
don’t know exactly about Nektar T6, but my MCU Pro protocol is a little different than standard mackie Control (the one available in the duplex tool), and specifically about the knobs.
I don’t remember well, but there was an offset in CC messages for in and out of the same knob. Like for knob 1 if it sends CC32, then the MCU expects receiving its control change on CC44. I had to modify the sending CC function in my MCU midi device to make it work…but it is working well now, and yes this is relative.
You can take a look on the MCU_PRO class i wrote in my zip file…