Scripting/Programming for the MF3D
Results 1 to 7 of 7
  1. #1
    Tech Convert
    Join Date
    Jun 2012
    Posts
    15

    Default Scripting/Programming for the MF3D

    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 forum 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.

  2. #2
    DJTT Super Moderator midifidler's Avatar
    Join Date
    Mar 2008
    Location
    San Francisco
    Posts
    1,902

    Default

    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.

  3. #3
    Tech Convert
    Join Date
    Jun 2012
    Posts
    15

    Default

    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.

  4. #4
    Tech Mentor
    Join Date
    Apr 2011
    Location
    Ireland
    Posts
    118

    Default

    Perhaps you could write a Midimasher (or similar tool) script to do what you need? No need to reinvent the wheel

  5. #5
    Tech Convert
    Join Date
    Jun 2012
    Posts
    15

    Default

    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.

  6. #6
    DJTT Super Moderator midifidler's Avatar
    Join Date
    Mar 2008
    Location
    San Francisco
    Posts
    1,902

    Default

    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

  7. #7
    Tech Convert
    Join Date
    Jun 2012
    Posts
    15

    Default

    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 think 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 think 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.
    Last edited by btfaires; 07-09-2012 at 05:04 PM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •