kriz Posted June 6, 2004 Report Posted June 6, 2004 hi,after reading about the fact that the hui protocol emulation is still a no go for the midibox lc, i was a bit disapointed, because of the fact that i use pro tools in my studio. But after reading about the different controllers that pro tools supports, i saw that it supported the cm labs motormix. I found a developer pdf wich containes all the midi information about the motormix.http://www.cmlabs.net/MotorMix%20V%201.2%20Developer%20pkg3.pdfIs it possible to build a midibox that emulates the cm labs motormix, and has anyone any idea's about how this can be done? Quote
TK. Posted June 6, 2004 Report Posted June 6, 2004 Hi,yes, the whole protocol is documented fine, so an emulation seems to be feasible. You could take the LC emulation as basis and modify the MIDI processor functions which decode the incoming MIDI events. The same has to be done for the output functions. Estimated effort: 3 months to learn assembler, 1 month to understand the LC application, 1 month to implement and test the changes.Best Regards, Thorsten. Quote
moebius Posted June 9, 2004 Report Posted June 9, 2004 Well,I'm also interested. I prefer Cubase 3.7 for my audio/sequencer, and cm motormix is the only full(ish) control surface it supports.. still no more than 8-channels at same time thought..But then again, I thought of clever(?) idea of using protocol as basis for custom controller (that has more channels/ maybe dedicated EQ-section), that SEEMS to be 8-channel box for the host software, but continuously sends messages to switch channel setups to query state of all channels, and updates them.I have also found article 'bout programming for cm motormix:http://www.prorec.com/prorec/articles.nsf/files/motormixprogramBye, Moebius Quote
TK. Posted June 9, 2004 Report Posted June 9, 2004 But then again, I thought of clever(?) idea of using protocol as basis for custom controller (that has more channels/ maybe dedicated EQ-section), that SEEMS to be 8-channel box for the host software, but continuously sends messages to switch channel setups to query state of all channels, and updates them.But display messages are only sent to one controller, motormix doesn't allow to address two or more displays via one MIDI cable. And MIDIbox MF is already a very generic controller.However, if somebody would write the documentation (basic description, block diagramms, photos) and would help newbies who are asking for the details in the forum, and if you would swear not to ask for special features for a thing which I would never use by myself, I'm possibly willing to modify the LC application for the Motormix protocol...But please understand that my own motiviation isn't that high - I've already a perfectly working controller, and I only own Logic and therefore cannot test the application with Cubase, Sonar, Pro Tools... so, once I provide a Motormix emulation, it would be very fine if somebody else could maintain it in the future! Otherwise this request would only lead to a lot of additional effort for myself which I don't really want.Best Regards, Thorsten. Quote
kriz Posted June 9, 2004 Author Report Posted June 9, 2004 I have also found article 'bout programming for cm motormix:http://www.prorec.com/prorec/articles.nsf/files/motormixprogramBye, Moebiusvery nice description of the motormix midi messages, this weekend i will try to find out how the software app. is sending the midi data to the motormix, and try to make a schematic of the structure in wich the data is sent. I will keep you posted on my results.Moebius, in pro tools you can select up to four controllers, so you just can add a second midibox for more channels, but i am not a cubase user so i don't know if cubase has the same feature's.kriz Quote
moebius Posted June 9, 2004 Report Posted June 9, 2004 But display messages are only sent to one controller, motormix doesn't allow to address two or more displays via one MIDI cable. <-- just speculation, for cubase modified version -->Yup. But that's where Midibox comes in ::) In Cubase 3.7 motormix can remote control ALL channels, but only in groups of 8. View left/right buttons sends midi message to cubase to switch channels remote is assigned to, so all channels can be accessed. I assume, when, let's say, View right message is sent, cubase sends updated information for next 8-channels, even for display.So if emulated (custom) motormix controller keeps quickly sending "View" -messages it can access all channel parameters for, let's say 24 channels, update those, and keep synchronized with cubase, no?However, if somebody would write the documentation (basic description, block diagramms, photos) and would help newbies who are asking for the details in the forum, and if you would swear not to ask for special features for a thing which I would never use by myself, I'm possibly willing to modify the LC application for the Motormix protocol..."Crossing my fingers" - Consider it done ;) Yes, I would be very happy, with basic motormix emulation. And I'm also willing to study more about it's specification, and try to answer questions about it here in the forum.I'm only requesting this, as I'm "deeply" in love with my antique Cubase 3.7, as it's fastest and most convenient way of working for me.But please understand that my own motiviation isn't that high - I've already a perfectly working controller, and I only own Logic and therefore cannot test the application with Cubase, Sonar, Pro Tools... so, once I provide a Motormix emulation, it would be very fine if somebody else could maintain it in the future! Otherwise this request would only lead to a lot of additional effort for myself which I don't really want.Well, with all the work you have already done, I'm expecting that you're busy with your invention of the 25th hour of the day.. ;D ;DBye, Moebius Quote
TK. Posted June 10, 2004 Report Posted June 10, 2004 Alright, the MIDIbox MM application is now available under http://www.ucapps.de/mios_download.html in the hope that I don't have to give support for this HUI variant.From the CHANGELOG.txt: MIDIbox MM V1.0 ~~~~~~~~~~~~~~~ Initial version which emulates the Motormix nearly completely: o eight motorfaders send and receive position data with 10 bit resolution o eigth touch sensors can be connected o eight virtual pots (rotary encoders) send relative events o one additional rotary encoder ("jog wheel") sends relative events o all 67 button functions are available o all 72 LED functions are available o two status digits (7 segment digits) o messages are displayed on a 2x40 LCD (only!) Additionally this application provides following functions: o a dirty hack makes it possible to add eight LEDrings to the V-Pots. However, the host application must send the absolute V-Pot position to the display - currently it only works with Sonar, Cubase doesn't get use of the so called "rotary pointer" (see Motormix specification) o a layer function which allows to map Motormix button functions and LEDs to a smaller number of buttons (additional "Shift Key") o 128 general purpose controllers can be send with the V-Pots in GPC mode o internal menu for motorfader calibration o optional "dont-send-if-touchsensor-not-pressed" function (disabled by default to avoid confusion, but heavily recommented if touchsensors available) Following function of the original Motormix is not implemented: o different graphical forms of the "rotary pointers" at the lower LCD line, since the graphics are not documented. Instead, always a vertical bar + the decimal value will be displayed Additional Notes: o Meters are not supported by the Motormix protocol o MTC digits are not supported by the Motormix protocol o LEDrings normaly not supported by the Motormix protocol. The LEDring hack works only with Sonar, and not with Cubase o the two 7 segment digits have to be connected directly to the shift registers --- no multiplexing required o only one 2x40 LCD is supported by the Motormix protocol o tested with the MIDIbox NG hardware, buttons and LEDs are assigned according to the existing design. The mapping can be changed in mm_io_tables.inc o *IMPORTANT* since I'm a Logic user (and therefore prefer the Logic Control emulation), this application has only be tested with following demo programs: -> Sonar 3 Producer Demo Edition -> Cubase SX Demo V1.02 No guarantee that it also works with other versions o Note for Cubase users: most buttons are not assigned to a function by default - you have to do this by hand in the device configuration! It seems that these functions don't have a LED feedback, but this could be different in newer Cubase versions. Please read also the "Remote Control Devices" Documentation which can be found at the Steinberg Website Best Regards, Thorsten. Quote
moebius Posted June 11, 2004 Report Posted June 11, 2004 Oh, GEE! :o :oThat WAS fast!!Thanx, Moebius Quote
jeroddumas Posted June 17, 2004 Report Posted June 17, 2004 hooray, now i can build a protools controller. Quote
jeroddumas Posted July 6, 2004 Report Posted July 6, 2004 would the encoders be connected the same as in mblc? Quote
moebius Posted July 9, 2004 Report Posted July 9, 2004 would the encoders be connected the same as in mblc?Yes. Quote
Guest the_al Posted July 15, 2004 Report Posted July 15, 2004 I don't understand some things.. o 128 general purpose controllers can be send with the V-Pots in GPC mode what is the GPC mode? Following function of the original Motormix is not implemented: o different graphical forms of the "rotary pointers" at the lower LCD line, since the graphics are not documented. Instead, always a vertical bar + the decimal value will be displayed I don't understand what is meant which a "different graphical form".. Additional Notes: o the two 7 segment digits have to be connected directly to the shift registers --- no multiplexing required that means, that the connecting is different.. maybe it sounds stupid, but what are the shift registers? o tested with the MIDIbox NG hardware, buttons and LEDs are assigned according to the existing design. The mapping can be changed in mm_io_tables.inc in which way can I modify the mapping of the MB? the mm_io_tables.inc-file is quite complicated.. ???bye and sorry for the many questions. :)daniel Quote
goyousalukis Posted July 15, 2004 Report Posted July 15, 2004 Ok :what is the GPC mode? It appears from TK's documentation that if you switch to GPC mode, the vpots(encoders) send midi controller messages.MIOS_MPROC_EVENT_TABLE ;; these entries are used by the "GPC" feature of MIDIbox MM which ;; can be activated with the GPC button ;; Up to 128 MIDI events can be defined here which are sent (and received) by the V-Pots in GPC mode ;; The labels for these entries are defined in lc_gpc_lables.inc ;; entry 0x00-0x0f MT_ENTRY 0xbf, 0x00 This means that in GPC mode the first V-Pot (knob) would send midi controller (0xbf) 0 (0x00) message. This would be useful for controlling parameters on a synth module or the like. I don't understand what is meant which a "different graphical form".. This just means that graphical rotary knobs aren't supported on the display, only bars. that means, that the connecting is different.. maybe it sounds stupid, but what are the shift registers? Shift registers are the chips that go on the DIN and DOUT boards. The 7 Segment is just hooked directly to a shift register. in which way can I modify the mapping of the MB? the mm_io_tables.inc-file is quite complicated..    ;; 1st shift register    ;;    button                                          LED db    ID_REC_RDY_CHN1,    ID_REC_RDY_CHN1    db    ID_REC_RDY_CHN2,    ID_REC_RDY_CHN2    db    ID_REC_RDY_CHN3,    ID_REC_RDY_CHN3    db    ID_REC_RDY_CHN4,    ID_REC_RDY_CHN4    db    ID_REC_RDY_CHN5,    ID_REC_RDY_CHN5    db    ID_REC_RDY_CHN6,    ID_REC_RDY_CHN6    db    ID_REC_RDY_CHN7,    ID_REC_RDY_CHN7    db    ID_REC_RDY_CHN8,    ID_REC_RDY_CHN8Ok, so the first shift register for the buttons is the first chip on the first DIN board. The first shift register for the LEDs is the first chip on the first DOUT board. This means that by default, the 8 Record Ready (Arm?) buttons are hooked up to the first chip on the first DIN board. Likewise the 8 Record Ready LEDs are hooked to the first chip on the first DOUT. The reason that you see many ID_IGNORE's in the table is because Thorsten had alread built his LC and wrote the table to match his hardware configuration. If you are building a MotorMix clone, you would want to move a bunch of the buttons and LED's up in the table and move the ID_IGNOREs down so that you wouldn't need as many DIN and DOUT boards. Each DIN and DOUT board handles 32 buttons/LEDs, so if you want 64 buttons on your desk, you'd need 2 DINS. Just follow TK's instruction to :;  Keep also in mind that the encoders and LED rings allocate some DIN;  and DOUT pins, which have to be defined in main.asm and mios_tables.inc;; IMPORTANT: this table MUST consist of 128 entries!!!; unused lines have to be filled with "db ID_IGNORE, ID_IGNORE" So you have to check the main.asm and mios_tables.inc to see where the encoders and led rings are to be hooked up. For instance, the 7 segment LEDs referenced above are hooked to shift registers 12 and 13 which means they are hooked to the 4th chip of the third DOUT module and the 1st chip on the fourth DOUT module. By default the Encoders are hooked up to shift registers (chips) 13, 14, and one on 15. See mios_tables.inc I hope this helps explain it a little and doesn't confuse you. Justin Quote
jeroddumas Posted July 15, 2004 Report Posted July 15, 2004 Where do I define which shift registers the enconders are to use??????? Quote
Guest the_al Posted July 16, 2004 Report Posted July 16, 2004 I hope this helps explain it a little and doesn't confuse you. Justinyes, this was very helpful! I will check it out.. thanks anyway Justin. :)daniel Quote
goyousalukis Posted July 17, 2004 Report Posted July 17, 2004 Where do I define which shift registers the enconders are to use? In the mios_tables.inc file :;; In this table DIN pins have to be assigned to rotary encoders for the ;; MIOS_ENC driver ;; a little further down ... MIOS_ENC_PIN_TABLE ;; encoders 1-16 ;; SR Pin Mode ENC_ENTRY 13, 0, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 1 ENC_ENTRY 13, 2, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 2 ENC_ENTRY 13, 4, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 3 ENC_ENTRY 13, 6, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 4 ENC_ENTRY 14, 0, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 5 ENC_ENTRY 14, 2, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 6 ENC_ENTRY 14, 4, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 7 ENC_ENTRY 14, 6, MIOS_ENC_MODE_NON_DETENTED ; V-Pot 8 ENC_ENTRY 15, 0, MIOS_ENC_MODE_NON_DETENTED ; Jog-Wheel ENC_EOTAfter making changes to the files you need to reassemble the project. See the MPASM howto at ucapps. Quote
jeroddumas Posted August 23, 2004 Report Posted August 23, 2004 Has anyone completed a motormix clone, I am curredcntly working on one???? Just asking.. Quote
jeroddumas Posted October 1, 2004 Report Posted October 1, 2004 Warning, Warning. I have built the motormix emulator. I still have not gotten my motorfaders. All works well except with pro tools. The LCD display does not work with pro tools, it seems as though there is i slightly different protocol for pro tools. So far everything else works!!!! Quote
tgp Posted October 2, 2004 Report Posted October 2, 2004 cool deal! tell me a little bit more about it. how many pots/faders/buttons. any pics?build time? Quote
TK. Posted October 2, 2004 Report Posted October 2, 2004 Hi,Warning, Warning. I have built the motormix emulator. I still have not gotten my motorfaders. All works well except with pro tools. The LCD display does not work with pro tools, it seems as though there is i slightly different protocol for pro tools. So far everything else works!!!!are you able to monitor the SysEx strings which are transmitted from ProTools with MIDI-Ox? Maybe this software uses a different (undocumented) format, but it shouldn't be a big problem to add this to the MM application.Best Regards, Thorsten. Quote
moebius Posted October 2, 2004 Report Posted October 2, 2004 Maybe this software uses a different (undocumented) format...IT SHOULDN'T! I'm KNOW that You build MM emulation on those specs found from internet. (Even that You did it in that short notice)(Well, You told that SX's implementation of Mackie/Logic control is broken.. But THE Pro Tools??Bye, Moebius Quote
Steven_C Posted October 3, 2004 Report Posted October 3, 2004 from the thread "Re: Module connection for Mackie Clone"I guess that the only change is the device ID, which is 0x10 for Logic Control, and 0x14 for Mackie Control. The emulation ID can be defined in main.asm of the MIDIbox LC application. If there are any other differences, we should always be able to add this to the firmware. Remember the Sonar fix - I found the required extension within 10 minutes by testing the MIDIbox LC with a demo version of Sonar. So - there is no real danger Best Regards, Thorsten. Maybe controlling protools with the logic control protocol would be better than CM motormix?(go to a music store that sells the mackie control and ask to play with protools with it! :P Try before you build! ;))But I don't really know, and I'm not knowledgeable enough to do what TK is suggesting either. I guess I'm just pondering! I too wanted to buld a midibox for protools, but I can't afford to buy protools, and windows XP to be able to run it! Quote
jeroddumas Posted October 4, 2004 Report Posted October 4, 2004 The way Mackie control is running with pro tools is via the HUI protocol which we cannot get. I will work on checking the sysex string Thorston. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.