Making a controller do HUI?

the19thbear

2014-06-16 08:21:47

Hi. I am completely new to MT. What i would love to do is to take my Bitstream 3x and use it as a HUI controller to control some of my UAD plugins - especially the space echo plugin. The bitstream 3x controller *should* be HUI enabled, but the controller itself is not activly supported anymore and a lot of the features simply dont work (HUI control included). For htose that dont know the controller its a row of 32 pots (not endless) and 8 faders (no motor control).

As far as i know HUI only support control of 8 plugin parameters at a time, so i would like to somehow convert my normal midi CC coming out of the controller to something that can control the space echo plugin, plus do the midi ping that the HUI protocol needs in pro tools. On top of that i need a "bank" switch to go to be able to reach all the plugin paramaters ( banks of 8 would be nice).
Is there a way to do this? I searched a bit here, but since im completely new it just seemed easier if someone who tried any of this in the past, would kindly chime in.
Thanks:)

DvlsAdvct

2014-06-17 16:56:56

Hi the19thbear

Do you, by any chance, have a reference for the HUI messages that are required in your plugins? We can convert any MIDI message to a HUI message but we need to know what HUI messages your plug in is listening for.

Thanks
Jared

the19thbear

2014-06-17 22:13:22

I found this:
http://home.comcast.net/~robbowers11/MCMap.htm
Which seems very helpful!
I just dont understand how i can convert the blue area (see link) to anything understood by MT. First i would need the "plugins" parameter emulated and then the vpots along with the v pot buttons (i think).

If i find the right sysex code how do i write in the whole pot turn and not just a specific pot position? i can't type in 127 different positions for the pot.. only one it seems, but i know it can be done.

sorry for the noobness;)

Thanks:)

DvlsAdvct

2014-06-18 03:02:27

No worries about any level of noob. Most people who come here are just learning and getting interested in MIDI, a few years ago that's where I was as well. :)

That's, unfortunately, a general HUI spec and won't help us working with the Space Echo integration. If you can't find anything specific, I haven't had any luck, I would recommend contacting someone at UAD and seeing if they can help. If you don't have any luck with them I may be able to ask a friend of mine.

Once we know the spec, though, and what messages the plugin is listening for we can make any MIDI controller send those messages.

the19thbear

2014-06-18 08:20:18

If I translated he midi messages to be able to go into the plugin control menu wouldn't I be able to sniff the midi messages generated by the uad plugin by turning its knob with the mouse?


Using the m audio protocol in pro tools instead of the hui I did just that and have successfully been able to "sniff" the midi coming out of the space echo knobs. I just thought it would make more sense to use HUI but I don't really care.

Here is how you can do it (contains midi messages):http://trikome.com/blog/2009/02/27/how- ... rotools-8/

I have the nanokontrol 2 though so I don't have the exact same functions.

So I might just go with the m audio protocol instead. There is one thing then though - it is expecting v pots/rotary encoders, and I only have normal pots. Is there a way to convert that?
Thanks:)

DvlsAdvct

2014-06-18 16:27:44

Hi again

Yes, you can ghost rotary encoders from absolute encoders, but you run into an issue of having a finite range. What I would recommend is adding a shift layer so you can turn the knob without sending a message, which I'll show below. You should set aside a button on the NanoKontrol to act as a global shift, which will not send to your app, but instead just sit in MT as a shift command using a global variable.

To replicate endless encoders you'll need to constantly measure the direction the absolute encoder is moving, so MT will know whether it is moving left or right. It will look something like:

Code: Select all

Translator 1: turn left
Incoming: MIDI B0 0E pp 
Rules: 
  gb=pp-ga
  ga=pp
  if gb>=0 then exit rules, skip Outgoing Action
Outgoing: B0 0E 01

Translator 1: turn right
Options: stop=false
Incoming: MIDI B0 0E pp 
Rules: 
  if gb<=0 then exit rules, skip Outgoing Action
Outgoing: B0 0E 01 
Tailor that to the signal you need and then we can cover getting the absolute encoder to not send a message but still update its position so you can continue turning it. make sense?

the19thbear

2014-06-19 15:34:31

Thanks:)
I get what you mean, though i dont completely understand the code. But i'll get to that later.
But first: How do i type in whole pot movements? If i click "capture midi" and turn a pot i get this a looong row of midi steps..

B0 12 01
B0 12 02
B0 12 03
B0 12 04
B0 12 04
B0 12 05
B0 12 07 .....
..............

how do i turn that into (example) B0 12 "the whole range that the pot has" instead of 127 different steps?

How will adding a shift button help me in converting pots to encoder movement? Or was that just a side note?

Can i just copy/paste the whole text you gave me into the "rules" field?
I know i have a long way to go as i dont fully understand everything, but i really appreciate you taking the time to help me out:)
Thanks a ton!

DvlsAdvct

2014-06-19 15:40:26

To capture the whole range of movement you want to use what's called a "local variable". These variables are calculated when the incoming message is received and forgotten when the outgoing message is sent. Those variables are oo, pp, qq, rr, ss, tt, uu, vv, xx. In the example I gave I used B0 0E pp. That pp means that any value or B0 0E is used to trigger the incoming message. If it was B0 pp qq it would trigger whenever any CC message came in on Channel 1. Make sense?

You can copy and paste the rules directly from the code I posted to the translators. Only copy and paste the rules, though, not the rest of it.

They use global variables, namely ga and gb. These variables are stored and remembered by MIDI Translator so they can be used across other translators.

The shift function is an idea that we will implement later. The problem you're going to have is that eventually you will hit 0 on your absolute knob but still need to turn left, or hit 127 and need to turn right, correct? So we will need to build in some logic so you can continue turning, but that will come later.

Hope that helps
Jared

the19thbear

2014-06-19 16:52:37

Thanks! I'll have a look at it when i have time:) You rock!

Guido

2014-09-01 20:30:28

Hi,

That Comcast link is not hui..been thru this years ago. Search forum for d8b. I made a mtp project and uploaded it here in 2012. In that project is all the sent received hui and MCU commands. Dvl works so hard he forgot that he did 3 quarters of it! Lol

If I have to I can dig up the true hui docs..took me 5 years to find em initially.heheh Some beutifull soul in Germany took a real hui and reverse engineered it.

The main thing to remember about the hui midi spec is that its mostly all 6 byte commands, like 2 normal midi commands to make 1 hui command.

GL and hit me up if u can't find my homes project either already on ur computer or on this site.

Guido