Jump to content

XMidiCtrl - A MIDI Controller Plugin for X-Plane 1.13

(16 reviews)

13 Screenshots

You have a MIDI Controller at home with lots of buttons and knobs? Why not use it with your favourite aircraft to control the autopilot and many other functions! XMidiCtrl is a plugin for X-Plane 11, which allows you to connect MIDI controllers to X-Plane commands and datarefs without the need of additional software.

The plugin was developed for X-Plane 11.50+ / 12 and supports Microsoft Windows, Linux and macOS (universal build).

The following devices are officially supported:

  • Behringer X Touch Mini

The following devices are known to work:

  • Behringer BCR2000
  • Behringer X-Touch Compact
  • Loupedeck Live

XMidiCtrl is open source: GitHub page

 

Features

  • Create different profiles for your aircrafts
  • Bind knobs and buttons of your controller to X-Plane Commands and DataRefs
  • Simulate push and pull functions for buttons (normal button press = push, long botton press = pull)
  • Send MIDI messages to the MIDI device to illuminate buttons when certain modes are active (e.g. autopilot, heading mode, ...)
  • Developed in C++ with no performance impact in your simulator

 

Donate
If you like XMidiCtrl and want to support its further development then you can donate.

 

Installation
Extract the ZIP file and move its entire XMidiCtrl folder into your ..\X-Plane\Resources\plugins directory.

 

Documentation
Detailed documentation of the plugin and all mapping options can be found here.

 

Usage
When a new aircraft is loaded, the plugin will search in the aircraft directory for a file called XMidiCtrl.toml. The profile uses the TOML language and holds information about the MIDI devices to be used and the mappings of the encoders and buttons. Further information about the TOML syntax can be found here. The configuration of XMidiCtrl might be a bit intimidating at the beginning, but it is quite straight forward. Please don't hesitate to contact me if you run into problems.

 

Examples
I have included the following examples as well as overlays to print out in the examples folder:

  • ToLiss A321
  • Hot Start TBM 900
  • Hot Start Challenger 650
  • IXEG 737-300
  • ZIBO 737-800
  • iniBuilds A310
  • Felis Boeing 747-200

Edited by VirtualCPT
New version 1.00

What's New in Version 1.13

Released

!!! Breaking changes !!!

+ Moved parameter sl_dataref from profile to device, to allow a sl_dataref for each device (see example files)
+ Renamed velocity to data_2 to be more aligned with the midi specification (see documentation for exact naming)

Fixes and new features:
+ Updated FontAwesome to latest version 6.4.2
+ Added sublayer support for outbound messages
+ Enabled slider mappings for virtual devices
+ Added paging to logging windows for better performance, remove max log setting

User Feedback

You may only provide a review once you have downloaded the file.

  

I only noticed this plugin when version 1.13 was released.  I took the plunge and bought a used X-Touch Mini.  I was surprised that I had it up and running perfectly in no time.  The combination works wonderfuly well for rotary controls - which my existing setup couldn't do.

I need to spend some time customising things, which will hopefully result in a "universal" template for the many freeware aircraft I use that only reference default datarefs.  The online documentation linked in the "readme" I'm sure will allow me to do that painlessly.

As other reviewers have said, this is a professional standard piece of freeware that greatly enhances control within X-Plane at minimal cost for additional hardware, with that hardware having the versatility to be useful for other tasks too.

(edited)

  

Excellent piece of software! I was a X-KeyPad user but switched to XMidiCtrl as I find the .toml files much more convenient to manage than the X-KeyPad .json files. I particularly like the include mechanism which allows reusing part of a configuration for multiple aircraft. And the plugin works flawlessly with my XTouch Mini. What I would like to see added to future versions is:

a) Controlling button LEDs using a bitwise and on a dataref such as for sim/cockpit/autopilot/autopilot_state which is a bitfield.

b) Possibility to make button LEDs flash when a dataref condition is met.

c) A bit more guidance in the documentation on how to control the ring LEDs of the encoders.

Thanks for all your efforts in developing XMidiCtrl and for making it available free of charge for the X-Plane community.

Update 28 Jan: The longer I use this plugin, the more I love it. I now started using the Virtual Device. It's sort of an alternative for the User Profiles in X-Plane but easier to manage. You only change per aircraft what is different and leave all what is common in one single user profile. Very handy this Virtual Device!

Edited by Rony Lanssiers

Response from the author:

Dear Rony,

Many thanks for your review. It's always great to see that my little plugin is useful for others, too.

Regarding your comments

a) I have that on my TODO list already

b) You can do that already. I have to check the Behringer documentation again and then I will add it to the XMidiCtrl manual

c) Yeah, I really should improve the documentation 🙂

Many thanks,
Marco

(edited)

  

Bonjour

Traduction informatique 

Je suis sur mac M2 Studio max 

Avec xplane12 et un Toliss A319

j'ai le message d'erreur suivant voir copie d'écran

Merci pour l'aide

Hello

Computer translation

I'm on mac M2 cStudio max

With xplane12 and a Toliss A319

I have the following error message see screenshot

Thank you for the help

Capture d’écran 24.jpg

Edited by Ypsos

Response from the author:

Bonjour Ypsos,

I love France but cannot speak French (unfortunately), so I will have to answer in English if you don't mind.

Each MIDI device has a port. That's a number and it tells XMidiCtrl how to connect to you device. The error message says that the plugin could not find the device on port 1. I guess it's port 0, but there is an easy way to find that out. Just start X-Plane and start a flight. Select "Plugins -> XMidiCtrl -> Show MIDI Devices". A dialog will open will all the devices connected to your pc. For each device you will also see the port number.

Afterwards you have to open the aircraft toml file and change the port numbers:

# Behringer X-Touch Mini No. 1
[[device]]
name     = "Behringer X-Touch Mini 1"
port_in  = 0
port_out = 1

Let me know if that works 🙂

  

Great plugin! A must-have for everyone using a midi controller for XP.

Of course, it takes a moment to understand the mapping logic, but that is to be expected and definitely worth the time to look through the documentation and examples to get your head around it.

Thanks a lot for the plugin and even more for giving me the idea to use an X-touch mini to finally get enough rotary knobs to comfortably fly in VR without fiddling with the mouse or controller all the time!  : )

   0 of 3 members found this review helpful 0 / 3 members

Disclaimer. I did have it working very briefly once yesterday after initial install however after a PC reboot no long works. I guess Windows is messing with something.

I'm totally stuck and racking my brains just getting it working due to 'Could not open inbound port '0' for device 'X-Touch Mini''

It is the only MIDI device being shown by the plugin using inbound port '0'

2023-05-06 20:39:17   [DEBUG]   Device 0 :: Mapping 12 :: Reading config
 

2023-05-06 20:46:11   [DEBUG]    --> Search for aircraft profile 'C:\X-Plane 12/Aircraft/ToLissA321_V1p5/XMidiCtrl.toml'
2023-05-06 20:46:11   [DEBUG]    --> Search for aircraft profile 'C:\X-Plane 12/Aircraft/ToLissA321_V1p5/A321_XMidiCtrl.toml'
2023-05-06 20:46:11   [INFO]    Aircraft Profile 'C:\X-Plane 12/Aircraft/ToLissA321_V1p5/A321_XMidiCtrl.toml' found
2023-05-06 20:46:11   [DEBUG]   File 'C:\X-Plane 12/Aircraft/ToLissA321_V1p5/A321_XMidiCtrl.toml' closed
2023-05-06 20:46:11   [DEBUG]   File 'C:\X-Plane 12/Aircraft/ToLissA321_V1p5/A321_XMidiCtrl.toml' loaded successfully
2023-05-06 20:46:11   [INFO]    Sublayer mode activated
2023-05-06 20:46:11   [INFO]    1 Device(s) found in aircraft profile
2023-05-06 20:46:11   [DEBUG]   Read settings for device 0
2023-05-06 20:46:11   [DEBUG]    --> Line 1 :: Parameter 'name' = 'X-Touch Mini'
2023-05-06 20:46:11   [DEBUG]    --> Line 1 :: Parameter 'port_in' = '0'
2023-05-06 20:46:11   [DEBUG]    --> Line 1 :: Parameter 'port_out' = '1'
...
...
2023-05-06 20:39:17   [DEBUG]    --> Line 127 :: Parameter type = 'drf'
2023-05-06 20:39:17   [DEBUG]    --> Line 127 :: Read settings for type 'drf'
2023-05-06 20:39:17   [DEBUG]    --> Line 127 :: Parameter 'ch' = '11'
2023-05-06 20:39:17   [DEBUG]    --> Line 127 :: Parameter 'cc' = '81'
2023-05-06 20:39:17   [DEBUG]    --> Line 127 :: Parameter 'dataref' = 'AirbusFBW/SDSTATUS'
2023-05-06 20:39:17   [DEBUG]    --> Line 127 :: Parameter 'value_on' = '1'
2023-05-06 20:39:17   [DEBUG]    --> Line 127 :: Parameter 'value_off' = '0'
2023-05-06 20:39:17   [ERROR]   Could not open inbound port '0' for device 'X-Touch Mini'
2023-05-06 20:39:17   [ERROR]   MidiInWinMM::openPort: error creating Windows MM MIDI input port.

Also tried resetting the device by holding down the far right most buttons during power-on then did a Get A -> Dump A and Get B -> Dump B to no avail.

Response from the author:

Hi,

I'm very sorry that you did not have a nice experience with my plugin. The error message from the log usually means that some other application is already using the MIDI device. Unfortunately, that's a limitation of Microsoft Windows. Just one application is allowed to use a MIDI device. Please make sure that all other MIDI apps are closed, such as the X-Touch Editor.

Please let me know if that helps.

Thanks,
Marco

   2 of 2 members found this review helpful 2 / 2 members

Hi,

This is a very professional piece of software, which must have taken many hours to produce and in my opion is just simply brilliant 💡

I have used it to produce a toml file for the Rotate MD-11 and if anyone would like to use it they are most welcome. I have also produced a crude template that can be printed and cutout - Old school style 😀

Please note that my Behringer X Touch Mini is configured exactly as per the VirtualCPT setup. If your is different, then you may have to adjust the code to suit.

XMidCtrl for Rotate MD-11.jpg

Rotate-MD-11_XMidiCtrl.zip

   2 of 2 members found this review helpful 2 / 2 members

If you have Loupedeck Live, this is the best add-on for Loupedeck.

 

(edited)

   1 of 2 members found this review helpful 1 / 2 members

I never used this Plugin before, so I'm a Rookie. But I tried to adapt the TBM 940 Profile for the default Cessna 172 G1000 in XP-12 Beta, because some of the G1000 Functionality of the G1000 has already been mapped in the Example Template. 

Outcome: While Encoders mostly work (sometimes a command_down Event tiggers command_up Simulator Events for while before triggering the correct down Events), Buttons unfortunately don't work for me. Neither Encoder Buttons nor any other Button on the X-Touch Mini. Even the Mappings from the original TBM Profile, like G1000 Heading Sync doesn't work. Maybe that's an Issue with the XP12 Beta?

EDIT: Sorry I overlooked this Point from your Answer. Instead I've reset my X-Touch Mini to Factory default Settings before first trying your Plugin. Works like a Charm now.

Edited by theflyguy

Response from the author:

Hi,

Many thanks for your review.

If the buttons don't work, I sounds like an issue with the Behringer X-Touch configuration. Did you follow the setup steps described in the online manual?

https://mauer.github.io/xmidictrl/#/behringer_xtouch_mini

  

Thanks a lot for this really awesome tool and VirtualCPTs help to configure and setup.
Works great with Behringer X-Touch and improves immersion a lot.

5 Stars..!

   2 of 2 members found this review helpful 2 / 2 members

Works like an absolute champ. Be sure to download the X-TOUCH EDITOR from Behringer  and load the Layer A/B mappings (push out to hardware) for the supplied templates to work. The hardware won't work correctly with the templates out of the box.

I just ordered the CL60 overlay template on heavy card stock, laser-printed from Staples. Total cost was a few bucks for 5 of them. If you don't have a color printer, that's a great way to go if you're in the US.

   1 of 1 member found this review helpful 1 / 1 member

Thank you very much for your job maked til the end

Clear, efficient and complete.

I spent my afternoon to print exemple pdf for each aircraft you built and use my cisel to adapt them to the Xtouch and it works well.

Maybe you also have the one for the Toliss A321 that I don't find in your folder. Only the config file.

Thank You

Response from the author:

Thank you for the very nice review! Attached you will find the overlay for the A321. It's not the prettiest format, I will improve that but right now I have to get mac support working 🙂

X-Touch_Mini_A321_Example.pdf

  

Outstanding work! Thank you so much for this! Easy to use and increases immersion by so much! Highly recommended!

   2 of 2 members found this review helpful 2 / 2 members

Super easy (once figured out) and powerful. Makes the vJoy/freePie/FlyWIthLua solution obsolete. I like very much that you can test every change you have made immediately.

Great piece of software!

 

   2 of 2 members found this review helpful 2 / 2 members

Highly recommend plugin. It work's very well, easy to use. Many thanks. 

   4 of 4 members found this review helpful 4 / 4 members

 

Hi Thank you for sharing after hours of adjustment finally I was able to configure my xtouch mini. if the slider and the light state can be set its will be great.

Response from the author:

Hi,

Many thanks for the 5 star review. I'm very happy that you were able to configure your x-touch mini.

I'm currently working on the next release, which will include quite a few new features:

  • Enhanced logging
  • Enhanced user interface with error messages if something is not configured correctly in the aircraft profile
  • Multi mappings (assign multiple X-Plane commands to a single midi event)
  • MIDI Out to illuminate the buttons on the midi device

All those features are already implemented and are being tested right now 😄

   2 of 2 members found this review helpful 2 / 2 members

This plugin is super helpful for everyone with a midi controller (which I highly recommend for flight sim)! Makes the other solution using vJoy and various scripts obsolete with better results. You can now spin the rotaries quickly and it picks up every detent. Very comfortable.

Marco is also very quick when you need help with setting it up (which is also super easy)