Midi Fighter Twister XT Bitwig Studio extension

Post Reply New Topic
RELATED
PRODUCTS

Post

I know there already are some other MF Twister extensions. But I had some fun doing this so here it is:
https://github.com/Trinitou/MidiFighter ... -alpha.zip
The .zip contains:
  • Custom firmware for the Midi Fighter Twister (.hex) for some extended bi-directional communication
  • Bitwig Studio extension (.bwextension) to showcase the advanced integration possibilites:
    • RGB leds show current track colors
    • Knob indicator appearance reflect the current parameter type (unipolar/bipolar)
    • For now: 2 controller modes (track volume & track pan)
    • Modes can be assigned to side switches
I hope you have fun with it, too!

Source code + instructions: https://github.com/Trinitou/MidiFighterTwisterXT
Of course, if you have constructive feedback, suggestions or feature requests, feel free to drop them here or even better as issue via GitHub.

Also feel free to contribute stuff via pull request if you like. For example, it should be pretty straightforward to add more controller modes.

Also I'm relatively unexperienced to some of the things I needed for this project. I tried my best, but if you find some issue or have constructive feedback concerning one of the following topics, please let me know:
  • Managing Github projects
  • Open soure licensing
  • Java (I'm way more into c++)
  • English language ;) Cheers!

Post

I have one of these controllers collecting dust at the moment, so I'll bust it out and try this soon.
This all seems really good! The bi-directional stuff missing was what annoyed me the most about the MFT; I like my controllers dynamic.
I'll do some experimenting and report back when i get the time :)

Thanks for sharing!

Post

This is great! Thank you. I want to add some controller modes to work with the other 4 side buttons. I'm also not great with Java.

Bottom left -> Straight CCs [Amp/Cab Sim (Map in Bitwig to Blue Cat Axiom)]
Top right -> Straight CCs [Binaural Pan (Map in Bitwig to Panagement or Binauralizer)]
Middle right -> Straight CCs
Bottom right -> Straight CCs

I also want to add mute functionality to the encoder push switches on both the Volume and Pan Controller Modes.

Any advice?

Post

mikebenson wrote: Sun Feb 11, 2024 3:49 pm This is great! Thank you. I want to add some controller modes to work with the other 4 side buttons. I'm also not great with Java.

Bottom left -> Straight CCs [Amp/Cab Sim (Map in Bitwig to Blue Cat Axiom)]
Top right -> Straight CCs [Binaural Pan (Map in Bitwig to Panagement or Binauralizer)]
Middle right -> Straight CCs
Bottom right -> Straight CCs

I also want to add mute functionality to the encoder push switches on both the Volume and Pan Controller Modes.

Any advice?
Hey, nice that you are interested in the script!

Maybe the first thing you could try out: In Bitwig's MIDI mapping mode, there is a setting "Prioritize input from" which you can set from "Contoller Script" to "Raw MIDI". Haven't tried it out but maybe that lets you already map the CCs manually?

Otherwise you'll probably need to do some Java coding. If so, have you already built the script yourself (e.g. using Eclipse or some other IDE)? If so, the main magic for defining new modes or knob/button functions happens inside "MidiFighterTwisterXTExtension.java" and "BindableKnobFunction.java" - to give you a first starting point. I'm sorry to admit that the code is a bit in a messy state and in some places a bit over-complicated.

The other question would be: what do you mean with "Straight CCs" ? Do you want to be able to map the knobs manually? If so, I think the most useful API function would be

Code: Select all

UserControlBank createUserControls (final int numControllers)
(you can search for "createUserControls" in the Controller API documentation). It's not exactly CCs but it basically lets you assign each hardware knob to one of the user controls in the bank. And those user controls then can be mapped to any parameter via Bitwig's mapping mode.

Another idea would be to add a new mode for Bitwig's track remote controls. This would be a bit more flexible. But also a bit more work: we would need a single cursor track... which could be scrolled via the bottom left knob. And then the upper 8 knobs would be assigned to the 8 track remote controls. But the cool thing would be that it always could follow the currently selected track.

Sorry, if I cannot implement it for you directly (being a bit busy ATM) but hope I could give you some idea where to look first. Actually had quite some more cool ideas in mind for this extension + firmware but also too many other ideas and projects :ud: :D

Post Reply

Return to “Controller Scripting”