MidiFighter Twister - Change Encoder Settings via MIDI

MidiFighter Twister - Change Encoder Settings via MIDI

The Twister is highly programmable both via the MidiFighter Utility (MFU) app and also via MIDI. The documentation explains everything quite clearly;

Some things though it seems can only be controlled via the MFU app and not MIDI. For example all of the encoder settings, such as Enable Detent, Detent Color, Sensitivity, Indicator Type - these are not documented as controllable via MIDI, however I’m guessing there’s a way to do it if you can figure out the right SySEX values.

Can anyone confirm or shed some light on this ?

Cheers

Hi noofny,

This sounds like an interesting issue to investigate, i’ve been doing quite abit of midi remote scripting lately but not explored SySEX messages yet.
So I can understand properly what you’re trying to do, where are you wanting to send the midi from in order to change these settings? from the controller itself or ableton/traktor etc?

Hey mega_john - great to see some interest!

The host app is Ableton Live, I have a custom python midi remote script which runs my Twister, so I already control all of the encoder colors and values etc etc. To achieve this, the script will just sending a sysex message instead of a cc or note basically, because I don’t believe the encoder settings I listed are controllable by CC or Note messages. I can help you on how to send sysex via a midi remote script if you need, because I do that a lot on my Push customer scripts and it works nicely to control things such as the LCD, which you also can only do via sysex.

The clue here is that the MF app shows you the sysex logs of what it sends to the device when you click “Send to Midifighter”. The trick though is that this is everything (a dump of all the settings), so finding the ones that just relate to the encoder settings would require to do a diff, if that makes sense.

Naturally if I get anywhere with this I’ll post how to do it.

Hi Noofny,

I get what you’re saying, doing a diff sounds like a good way we could narrow it down.
It sounds like you may have already figured it out by now but a starting point would be to change one of the parameters you’re trying to figure out and run a diff, see if there’s any indicators there.
I have a twister too but not sure when I’ll get a chance to try this out myself.
Maybe you could post up 2 versions of the logs and I’ll help to see if I can find anything?

I’ve sent midi to ableton but don’t think I’ve done it the other way around yet, how do you handle that?

Did you get anywhere with this Noofny?

Today I played a bit with it, didn’t really get where I wanted to though.

Based on a diff between 2 bulk dumps I managed to isolate 2 sysex message that the MF Utility sends to set encoder ring mode (dot/bar/blended-bar)…not sure if they are both needed or not;

[0xf0, 0x00, 0x01, 0x79, 0x04, 0x00, encoder_index, 0x01, 0x02, 0x18, 0x0a, 0x00, 0x0b, 0x01, 0x0c, 0x02, 0x0d, 0x04, 0x0e, encoder_index, 0x0f, 0x00, 0x10, 0x05, 0x11, encoder_index, 0x12, 0x01, 0x13, 0x33, 0x14, 0x00, 0x15, 0x3f, 0xf7]

[0xf0, 0x00, 0x01, 0x79, 0x04, 0x00, (encoder_index+0x01), 0x02, 0x02, 0x04, 0x16, encoder_mode, 0x17, 0x00, 0xf7]

encoder_index : one of the 16 encoder indexes, zero-based, so 0x00 to 0x0f
encoder_mode : 0x00=dot, 0x01=bar, 0x02=blended-bar

I also managed to isolate what appears to be a message to save/reboot the unit which the MF Util sends at the end of a dump;

[0xf0, 0x00, 0x01, 0x79, 0x01, 0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x03, 0x07, 0x04, 0x02, 0x05, 0x02, 0x06, 0x06, 0x07, 0x02, 0x08, 0x3f, 0x09, 0x7f, 0x0a, 0x00, 0x0b, 0x01, 0x0c, 0x02, 0x0d, 0x04, 0x0e, 0x03, 0x0f, 0x00, 0x10, 0x05, 0x11, 0x03, 0x12, 0x01, 0x13, 0x33, 0x14, 0x00, 0x15, 0x3f, 0x16, encoder_mode, 0x17, 0x00, 0x1f, 0x7f, 0x20, 0x64, 0xf7]

encoder_mode : not really sure what this is, but it matched the values that I set for the encoder mode in previous messages.

Sending this isolated sequence of 3 messages works, it updates the settings fine. However after sending the save/reboot message the unit does it’s little green-light flashy sequence (same thing you see when you dump settings using the MF Util). Not really practical when you’re wanting to change values on the fly in the middle of a set for example. If you don’t send this save/reboot message, then the encoders you updated remain unresponsive, like they are in a write-only mode or something.

It would be awesome if someone with internal brains on the matter could help shed some light.

DJTT…anyone…please?

Sysex Protocol for Midi Fighter Twister

It sure would be nice it the sysex protocol was published. I have different applications for my MFT and would like to uses public domain “sendmidi” to change MFT configurations between apps. Sendmi is a nice little utility that can send midi from the Windows 10 cmd prompt. I could then set up a batch file do send sysex to configure my MFT prior to loading a given application. Right now, I have to go the the MF utility and do it manually.

Also, in production, I am running through a Iconnectivity Imidi+. The utility does not recognize the MFT when hooked through that interface, so I not only have to run the utility manually I have to switch my connectors any time I want to change configurations. I opened a ticket to see if DJTT would help. Let’s see where it goes.

yes

Bump to this!

The utility app is pretty poor and has some frustrating bugs for updating multiple encoder settings.

Firmware is open-sourced, why can’t we have the utlity app open-sourced / MIDI sysex documented?

I’d really love to be able to change the encoder type between Enc 3FH/41H and 0-127 on the fly. It’s easy to change all the settings documented in the User Guide using Max but I guess I need to use Sysex to change the encoder type? Thanks for your progress already…

Super bump? I sort of assumed I could program this unit via midi. I see that there’s firmware published but no decent instructions on compiling or documentation.

Makes this thing kinda shitty for my application.

Production enviroment

It would be awesome if we can change those settings on the fly.
I don’t think they’re going to develop that because apparently the controller needs to restart, so it cannot be “on the fly” as Noofny said. (Thanks Noofny for your findings!)

In a live enviroment its imposible but for a production enviroment maybe one can wait to the thing to restart after the new sysex is sent.

It would be awesome to isolate the sysex chunks for each config and encoder to build some “snippets” and update that config on demand, besides the reset.

Applying the “Has Detent” or “Detent Color” property on the fly would be extremely useful for DAW integrations that quickly map a control between various bipolar and non-bipolar plugin parameters.