Jump to content

HUI Protools Transport control


Recommended Posts

Hello. First of all i am an spanish speaker with some knowledge of English, but is not one of my best abilities. Forgive me if i can express my self correcly in English. I will try to do my best.


I'm making a transport control for my studio, on where i use Protools 9 & 10. I want a little box with the Play, Record... controls.


Some time ago, i build my self one midibox LC, and with that experience in mind, Tryed to use with protools with no luck, because as you may know, Protools only likes HUI.


Searching a solution for this, founded another midibox project called mm, a motormix emulator that uses HUI, you can found here:




It seems that the forum topic of this old project, was deleted, because the link will take you to an error page.  http://midibox.org/forums/forum/index.php?topic=4839.0


Navigating throught the code, founded where i can change my setup. Only one Shift Register, no motor fader, no ring lights, no encoders. Easy to do on "main.h" file.


I also mapped the corrects ID to the first shift register on "mm_dio_table.c". But i am not getting nothing on the shift register. On my oscilloscope i can see the 8 bits the core is sending, eight 1's. And this byte never changes. 


The protools is recognizing correctly the motormix because, is pinging back to all requests of ping that protools makes. 


At the end of "main.h" file can found this piece of code:

// Global Types

// status of MM emulation
typedef union {
  struct {
    unsigned ALL:8;
  struct {
    unsigned PRINT_POINTERS:1; // if set: pointers are displayed at second LCD line
                               // if cleared: lower part of message is displayed at second LCD line
    unsigned LAYER_SEL:1;      // if cleared: button/led layer 0 active
                               // if set: button/led layer 1 active
    unsigned GPC_SEL:1;        // if cleared: motormix emulation mode
                               // if set: general purpose controller mode
    unsigned MSG_UPDATE_REQ:1; // if set, host/GPC message will be updated
    unsigned DISPLAY_INIT_REQ:1; // if set, the display will be completely initialized
    unsigned LED_UPDATE_REQ:1; // if set, the LEDs will be updated
    unsigned :1;
    unsigned :1;
} mm_flags_t;

 The comment of GPC_SEL:1;     Says if set: general purpose controller mode. And i think, i need motormix emulation mode wich says if cleared. If put a 0 there, won't compile.

Maybe is not my primary problem, because that GPC_SEL declaration will be on another file. Where can i set motormix emulation mode?


Even tryed to upload the predompiled hex that goes in the zip. But without luck also. I can see on the scope 16 bytes, but they are always 1's. They don't change.

The first shift register in the precompiled hex is mapped to ID_REC_READY_X. But they don't change when you press on the rec ready on the pro tools.


I am almost lost, because my knowledge in C is also limited, and i can't see where is the failure.


My goal is to make a HUI transport control, maybe is there another project better for my needs? I have the HUI protocol, but i don't even know where to start, moreover if i can make run a code that is already made. At least if i can make run a code that works, can try to modify things. But if i can't run the compiled code as it is on the zip package. I can't start to modify things inside, to fit my needs.


My circuit with a Lc firmware works like a charm with logic. But i can't make work with any HUI firmware available.


Can some one help me. Please.



Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...