Scripting/Programming for the MF3D

Home :: MIDIfighter Resources and Discussion :: Scripting/Programming for the MF3DReply
Scripting/Programming for the MF3D
Posted on: 30.06.2012 by Hilary Zaver
I'm new to using midi controllers but have a big programming background. What tools are available to set up custom features for a midi fighter 3d? I'm using Serato and from what I gather, I'm stuck mapping buttons to controls with 1:1 connections. I'd really like to accomplish things like:
- A typical shift button
- A button to toggle between multiple controls (like L-M-R-Master outputs on the sampler)
- A button to alter the mappings of other buttons (kind of like complex shift buttons)

I can see that the community has code/configuration files for the MF Classic (Serato's MIDI xml, firmware source code), but I can't find anything for the 3d. Can anyone point me in the right direction? I'd really like to be able to control more than 64 features.
Hilary Zaver
30.06.2012
I'm new to using midi controllers but have a big programming background. What tools are available to set up custom features for a midi fighter 3d? I'm using Serato and from what I gather, I'm stuck mapping buttons to controls with 1:1 connections. I'd really like to accomplish things like:
- A typical shift button
- A button to toggle between multiple controls (like L-M-R-Master outputs on the sampler)
- A button to alter the mappings of other buttons (kind of like complex shift buttons)

I can see that the community has code/configuration files for the MF Classic (Serato's MIDI xml, firmware source code), but I can't find anything for the 3d. Can anyone point me in the right direction? I'd really like to be able to control more than 64 features.
Hilary Zaver
07.07.2012
Well I got my 3d yesterday, and let me just say I love the thing! The buttons are sensitive and robust, easy to do crabs on, and I really like how many usable controls they managed to get into the streamlined interface. I've had pretty good luck interfacing with Serato too. The "on_modifier" feature from the MF Classic.xml mapping still works, so shift button(s) are pretty easy to implement. With shift, I almost have more controls than I know what to do with. My mapping right now is similar to the MF Classic mapping, except there's now room for a lot more control on each of the four banks. Also fx are available all the time via the controls that aren't affected by which bank is active.

There are 2 things I believe all Serato users should know. The first one is VERY IMPORTANT.

1. Scratch Live only checks for midi messages while updating the screen. This means you'll get latency if you have a low refresh rate. Initially, I had my screen refreshing at 10Hz, which was 100ms of latency! Turn your refresh rate as high as you possibly can, and keep in mind that very fast button presses might get missed by Serato (since it's maximum refresh rate is 60Hz == ~17ms of latency).

2. Loops and loop rolls are practically the same thing to Scratch Live. Whenever you start a loop, the "If I weren't looping, I'd be there" position gets tracked, even if you aren't doing any loop rolls. When it comes time to exit the loop, Serato looks at the loop and asks, "Is this a loop or loop roll that I'm exiting from?", and decides then if it will exit the loop normally or jump to the "If I weren't looping..." position. I've exploited this in my mapping by having 12 loop buttons: all 11 auto-loop values, and 1 loop roll button. This lets me tap on a loop of any length (or several lengths in succession, obv), and then exit either as a regular loop (by pressing the loop button again), or as a loop roll (by tapping my 1 loop roll button). I believe this is a pretty cool feature, because it lets you delay a potentially big decision as long as possible.

Anyway, check out my mapping if you use Serato! I'll try to get it up sometime today.
Adolf Hit
04.07.2012
Hey Btfaires,

Sorry I kinda of misunderstood what you where asking for originally, I thought you where asking for firmware changes.

Ive PM'd you
Hilary Zaver
03.07.2012
Cool thanks, and I've reinvented many unnecessary things in my life Once my 3D arrives I'll see what I can spin up and release anything of worth, for all the other lowly Serato users out there.
Kimberly Lewark
02.07.2012
Perhaps you could write a Midimasher (or similar tool) script to do what you need? No need to reinvent the wheel
Hilary Zaver
02.07.2012
Hi, thanks for the response. I'll add something to the feature request thread. I'll probably end up developing a tool to intercept the midi messages and implement my logic at that level. I'll be happy to open source that or any other useful tools I develop (if you'd like some free development work from a professional software developer, now's your chance).

In the mappings xml file for the '2d' MFs, I notice an attribute named "on_modifier" that was used to implement a shift button. Is there a reason that won't work with the MF3D? Since that file only gets referenced by Serato afaik, I'm missing how that functionality was lost. Thanks.
Adolf Hit
03.07.2012
Hey Btfaires,

The MF3D is not yet particularly suited to Serato due to its very limited MIDI mapping capability. The features you have requested are unlikely to be added soon, however please feel free to ask for what ever you want in the feature request thread, if you can make a good case I will consider building a special version of code specifically tailored towards Serato.

<< Back to MIDIfighter Resources and DiscussionReply

Copyright 2012-2023
DJRANKINGS.ORG n.g.o.
Chuo-ku, Osaka, Japan

Created by Ajaxel CMS

Terms & Privacy