Jump to content

MIDI Controller Support


H-var

Recommended Posts

Dear Eagle Dynamics,

 

After reading about MIDI, I learned that it is integrated into the Windows Operating System, and there is a very extensive documentation available on the Microsoft website, and many other places on the internet on how to implement the data received from MIDI devices into an application.

 

It's funny to think that all the joysticks were once actually MIDI controllers, and now we are coming back around to find them maybe useful being as MIDI devices once again.

 

The advantages of a MIDI device over a joystick:

- a MIDI can have thousands of buttons, or hundreds of sliders, and rotaries

- very easy to buy anywhere, in any place on the planet

- very cheap when compared to joystick companies

- you can buy used ones for any taste and likeness anywhere

- building home-made cockpits is much easier, and straightforward

 

Any MIDI device is working in a very simple, and always the same way:

 

Buttons:

- every control\button\rotary has 128 positions (0-127)

- pressing a button will send a pulse, two unique codes (addresses) - one address says it's pressed DOWN, other that it is RELEASED

- holding a button will send the pressed DOWN unique address only to anyone interested in it

- releasing the button will then send the "this button has been RELEASED" unique code

 

Rotaries:

- rotaries also have 128 positions

- as you rotate it, it will quickly send a range of unique addresses

- to create a rotary you have to combine these addresses into a group in your application. In DCS you can call it Rotary1. When someone's rotating it, the DCS would register the Rotary1, and bind it to the axis.

- all the addresses are the same between all the MIDI control surfaces meaning that a rotary on Roland, or a rotary on Yamaha will be registered as the same rotary by Windows.

 

All you need to do is to tell DCS to capture the MIDI signals and it's really easy because it's already in the Windows since forever, and no additional files, or drivers needed; and then teach DCS what range of addresses is a slider, a rotary, a button etc.

 

Or, you could tell DCS to wait for the player to use a slider on their midi controller, and then offer them to choose, if they want to use that as a slider, rotary, or a button.

 

 

The reason why MIDI would be so incredibly valuable for us is because you can easily purchase a MIDI controller for very cheap, and they offer millions of combinations - rotaries, sliders, buttons - anything you wish.

 

That would be such an amazing thing for the DCS communtity! I hope it could be implemented!

 

Warm Regards,

H-var

 

attachment.php?attachmentid=234500&stc=1&d=1588411721

 

attachment.php?attachmentid=234501&stc=1&d=1588411721

 

attachment.php?attachmentid=234502&stc=1&d=1588411937

 

attachment.php?attachmentid=234503&stc=1&d=1588411937

 

attachment.php?attachmentid=234504&stc=1&d=1588411937

1073492300_download(1).jpg.33beee0eeb4a6b7724d65019b2352d41.jpg

download.thumb.jpg.0727c9df13b88f0f001add8f7ee352b3.jpg

71v7rvtiPzL._AC_SL1500_.jpg.6af0f105b42d609359fa1a0c8baf7470.jpg

61ai3cGSOL._AC_SL1500_.jpg.b82c075169953c0a97de31d70b359067.jpg

31jpQXef-2L._AC_.jpg.ec16b572c42fb9c1d8b0aa79c4295392.jpg


Edited by H-var
  • Like 2

2. The DCS MOVIE information!

4. REAL UFO FOOTAGE

I don't trust anything that bleeds for five days, and doesn't die

 

government: gives me money because of coronavirus

me: spends all money on the missing DCS modules

government: ... you dumbo! We won't give you money anymore

me: It's ok. I don't need anything else - I now have the entire DCS collection

my cat: looking at the empty bowl for a while and goes back to sleep

me: it's hard times, Mig, suck it up!

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

Not needed in vanilla DCS, imo. Devs have their hands full. If you're interested, you could code something similar to DCS-BIOS but for MIDI. Most controllers are optimized for music so it doesnt make much sense unless you fly in your studio room. :) Check out DCS-BIOS, it pretty much solves all the IO problems.

My controls & seat

 

Main controls: , BRD-N v4 Flightstick (Kreml C5 controller), TM Warthog Throttle (Kreml F3 controller), BRD-F2 Restyling Bf-109 Pedals w. damper, TrackIR5, Gametrix KW-908 (integrated into RAV4 seat)

Stick grips:

Thrustmaster Warthog

Thrustmaster Cougar (x2)

Thrustmaster F-16 FLCS

BRD KG13

 

Standby controls:

BRD-M2 Mi-8 Pedals (Ruddermaster controller)

BRD-N v3 Flightstick w. exch. grip upgrade (Kreml C5 controller)

Thrustmaster Cougar Throttle

Pilot seat

 

 

Link to comment
Share on other sites

I'm using a Korg Nanokontrol2 for additional buttons & knob control in DCS. It runs fine via 2 free plugins - FreePIE and vJoy, then shows up as 2 additional control sets in DCS when you assign controls in settings. I now have 8 sliders, 8 rotary knobs, 35 additional buttons to assign as I wish, far more than I could get with an expensive joystick upgrade. Biggest problem is remembering what control I mapped where, I tend to map non-critical functions like console/instrument light levels, F2, F5, F10 views, then flaps and gear, which leaves my joystick buttons to focus on weapons control. I also use one of the sliders for zoom since my joystick rocker switch for zoom is really cranky.

The midi controllers are a really cheap option for people who dont mind a bit of scripting, and when Im not flying, it controls a load of VCV Rack virtual synth settings for me.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

This was a brilliant thread! Thank you!

 

Sent from my ANE-LX1 using Tapatalk

 

Agreed! This would be really cool...think about the ridiculous price of a legato stream deck.

  • Like 1

i7 8700K @ Stock - Win10 64 - 32 RAM - RTX 3080 12gb OC - 55 inch 4k Display

 

 

Link to comment
Share on other sites

ED provides an export API. It is up to you people how to use it. They should not and will not implement such functionality, but they provide means for developers to write software that will provide such functionality.

 

There are a few export routers available, such as DCS-BIOS. I don't believe MIDI is such a good idea, frankly. Arduinos & custom panels make more sense. But someone could build on DCS-BIOS to provide such an interface.

My controls & seat

 

Main controls: , BRD-N v4 Flightstick (Kreml C5 controller), TM Warthog Throttle (Kreml F3 controller), BRD-F2 Restyling Bf-109 Pedals w. damper, TrackIR5, Gametrix KW-908 (integrated into RAV4 seat)

Stick grips:

Thrustmaster Warthog

Thrustmaster Cougar (x2)

Thrustmaster F-16 FLCS

BRD KG13

 

Standby controls:

BRD-M2 Mi-8 Pedals (Ruddermaster controller)

BRD-N v3 Flightstick w. exch. grip upgrade (Kreml C5 controller)

Thrustmaster Cougar Throttle

Pilot seat

 

 

Link to comment
Share on other sites

ED provides an export API. It is up to you people how to use it. They should not and will not implement such functionality, but they provide means for developers to write software that will provide such functionality.

 

There are a few export routers available, such as DCS-BIOS. I don't believe MIDI is such a good idea, frankly. Arduinos & custom panels make more sense. But someone could build on DCS-BIOS to provide such an interface.

What you on at?

Two posts back there is already

way to do this. But DCS-BIOS probably more sexy though.

Here's another.

 

https://github.com/c0redumb/midi2vjoy/blob/master/README.md

 

But sure, making your sim pit with Arduino and what not is awesome, but the point of this thread as I see it was to re-use/use existing inexpensive hardware in an easy way!

Go green! Re-cycle!

 

 

Sent from my ANE-LX1 using Tapatalk

  • Like 1
Link to comment
Share on other sites

What you on at?

Two posts back there is already

way to do this. But DCS-BIOS probably more sexy though.

Here's another.

 

https://github.com/c0redumb/midi2vjoy/blob/master/README.md

 

But sure, making your sim pit with Arduino and what not is awesome, but the point of this thread as I see it was to re-use/use existing inexpensive hardware in an easy way!

Go green! Re-cycle!

 

 

Sent from my ANE-LX1 using Tapatalk

All those solutions are:

1. Too kludgy

2. Lack 2-way connectivity

 

We need a solution which will provide feedback, as a lot of midi controllers have LED-feedback on pads and pots.

Adapting DCS-BIOS for midi seems like the logical way forward here.

My controls & seat

 

Main controls: , BRD-N v4 Flightstick (Kreml C5 controller), TM Warthog Throttle (Kreml F3 controller), BRD-F2 Restyling Bf-109 Pedals w. damper, TrackIR5, Gametrix KW-908 (integrated into RAV4 seat)

Stick grips:

Thrustmaster Warthog

Thrustmaster Cougar (x2)

Thrustmaster F-16 FLCS

BRD KG13

 

Standby controls:

BRD-M2 Mi-8 Pedals (Ruddermaster controller)

BRD-N v3 Flightstick w. exch. grip upgrade (Kreml C5 controller)

Thrustmaster Cougar Throttle

Pilot seat

 

 

Link to comment
Share on other sites

All those solutions are:

1. Too kludgy

2. Lack 2-way connectivity

 

We need a solution which will provide feedback, as a lot of midi controllers have LED-feedback on pads and pots.

Adapting DCS-BIOS for midi seems like the logical way forward here.

Ahhhhh, okay. Probably misunderstood you.

Well, if anyone would volunteer for that it would be fanstatic. But I'm off to find a cheap second hand device to test this. I don't see it as kludgy. Seems really easy actually. Had a feeling vJoy could solve this, did it for my trusty ol' MS Strategic Commander. No need for DCS BIOS there

But now you've given me ideas.

Thanks and cheers!

 

Sent from my ANE-LX1 using Tapatalk

  • Like 1
Link to comment
Share on other sites

Ahhhhh, okay. Probably misunderstood you.

Well, if anyone would volunteer for that it would be fanstatic. But I'm off to find a cheap second hand device to test this. I don't see it as kludgy. Seems really easy actually. Had a feeling vJoy could solve this, did it for my trusty ol' MS Strategic Commander. No need for DCS BIOS there

But now you've given me ideas.

Thanks and cheers!

 

Sent from my ANE-LX1 using Tapatalk

I've got tons of midi stuff myself, I'll look into it too.

My controls & seat

 

Main controls: , BRD-N v4 Flightstick (Kreml C5 controller), TM Warthog Throttle (Kreml F3 controller), BRD-F2 Restyling Bf-109 Pedals w. damper, TrackIR5, Gametrix KW-908 (integrated into RAV4 seat)

Stick grips:

Thrustmaster Warthog

Thrustmaster Cougar (x2)

Thrustmaster F-16 FLCS

BRD KG13

 

Standby controls:

BRD-M2 Mi-8 Pedals (Ruddermaster controller)

BRD-N v3 Flightstick w. exch. grip upgrade (Kreml C5 controller)

Thrustmaster Cougar Throttle

Pilot seat

 

 

Link to comment
Share on other sites

There are many ways to do this.

 

 

See here,

 

 

https://forums.eagle.ru/showthread.php?t=221268&highlight=midi

"Yeah, and though I work in the valley of Death, I will fear no Evil. For where there is one, there is always three. I preparest my aircraft to receive the Iron that will be delivered in the presence of my enemies. Thy ALCM and JDAM they comfort me. Power was given unto the aircrew to make peace upon the world by way of the sword. And when the call went out, Behold the "Sword of Stealth". And his name was Death. And Hell followed him. For the day of wrath has come and no mercy shall be given."

Link to comment
Share on other sites

  • 6 months later...

I'm using an X Touch Mini from behringer, in conjunction with Bome Midi Translator which does the job of translating to keystrokes. Works great, and when I'm not in DCS, then I use it Photoshop which was the original reason why I got the X touch in the first place.

  • Thanks 1
Link to comment
Share on other sites

  • 10 months later...

Old topic but I also use the X Touch Mini with a licensed copy of Bome Midi translator. I looked into using some of the helpful tips above but found them not for me by various reasons.  I use vJoy to convert the output from Bomes rules/scripts to controller buttons and controller sliders instead of keystrokes. Kind of fidgety at first but works great with some work-arounds in both vJoy and Bome.

 

I also got a Akai MPD218 pad controller. It looked great but I didn’t like the large and soft ”finger-drum-pads” in game 🙂. It is now replaced by Total Controls Multi function Box. 

  • Thanks 1

System specs: 13900K, Nvidia 4090RTX, 64 GB RAM, 2TB SSD.  Rig: Next Level Racing Boing Military. VR: Varjo Aero (+Pimax (8KX)
Virpil VPC MongoosT-50CM2, Virpil VPC MongoosT-50CM3 Throttle, MFG Crosswind,
Winwing Orion 2 Hotas F16 (Throttle and stick) , Winwing Orion 2 F15EX throttle, Winwing F18 Phoenix MIP (VR)
Virpil Control Panel #2, Virpil Sharka 50 Control Panel, Total Controls Multi Function Button Box, Streamdeck
Software:  XRnecksafer, OpenKneeboard, SimShaker

Link to comment
Share on other sites

On 10/11/2021 at 1:40 PM, Canard said:

Old topic but I also use the X Touch Mini with a licensed copy of Bome Midi translator. I looked into using some of the helpful tips above but found them not for me by various reasons.  I use vJoy to convert the output from Bomes rules/scripts to controller buttons and controller sliders instead of keystrokes. Kind of fidgety at first but works great with some work-arounds in both vJoy and Bome.

 

I also got a Akai MPD218 pad controller. It looked great but I didn’t like the large and soft ”finger-drum-pads” in game 🙂. It is now replaced by Total Controls Multi function Box. 

Any chance you would give some extra info? I am currently looking at both programs, but can´t think of any reasonable way to make sliders work. 

  • Like 1

PC: i7 8700k 32GB DDR4 3200 Mhz  RTX 3070 Ti Hotas Warthog Thrustmaster TPR Track ir 5 Bodnar BBI-32 Beyerdynamic DT-770 Pro Focusrite Scarlett 18i20 Lewitt LCT 240 Pro
Jets: A-10A A-10C Warthog A-10C II F-14 Tomcat F-16C Viper F-5E Tiger II F/A-18C Hornet F-15C Su-33 MiG-29 F-86F Sabre 
Choppers: AH-64D Mi-8MTV2 UH-1H Huey Black shark 2 Maps: Nevada Normandy Persian gulf Syria The Channel 
WW2: BF-109 K4 Fw 190 D-9 Dora Mosquito FB VI P-51D Mustang Spitfire LF Mk. IX  Other: Supercarrier WWII Assets Pack NS 430 Navigation System Combined Arms 

Link to comment
Share on other sites

7 hours ago, ChainsawAkimbo said:

Any chance you would give some extra info? I am currently looking at both programs, but can´t think of any reasonable way to make sliders work. 

Hi ChainsawAkimbo, I'll add my rules from Bome (for XTouch). They do the job but it is after some trial and error and can probably be a lot smarter. In short: I use Bome to clean and modify the Midi-signals to be used in Vjoy. I found that Vjoy was not able to react to all types of midi-signals so Bome converts the signals to something that can be used. 

So, My flow is:  Xtouch sends signals in to Bome and I use Bome to send modified Midi-signals out in a virtual midi-channel as output. In vjoy I convert the virtual midi-channel to control-inputs as a controller would do. Some tinkering was necessary there also (like axis to button if I remember correctly).   

The slider-part should be the easy one. In VJoy just trap the MIDI signal Axis (midi) to Axis (virtual vjoy-controller). In Bome I just converted the CC-value for some conflict-reason that I had. Probably not necessary for sliders. 

The knobs increase/decrease-rule below is the most complicated and I have trouble reading it myself now 🙂 . I wanted to convert movement to button presses for use in DCS. 

 

-------------------------------------

[x] Preset 0: X-touch All buttons

[x] Translator 0.0: Button push
Options: swallow
Incoming: Note On on ch. 11 with any note set 'qq' to note with velocity:127 (0x7F), on port X-TOUCH MINI
Rules: 
Outgoing: Control Change on ch. 12 with CC#:qq and value:127 (0x7F), to port Bome MIDI Translator 1 Virtual Out

[x] Translator 0.1: Button push
Options: swallow
Incoming: Note Off on ch. 11 with any note set 'qq' to note with velocity:0 (0x00), on port X-TOUCH MINI
Outgoing: Control Change on ch. 12 with CC#:qq and value:56 (0x38), to port Bome MIDI Translator 1 Virtual Out, delay:30 millisec

_____________________________________________________________

(this one is for slider values - I use the slider and one volume knob as axis input, the rest of the knobs for ccw/cw values)
[x] Preset 1: X-touch Slider 9 and Knob 8

[x] Translator 1.0: Slider 9 to passtrough
Options: swallow
Incoming: Control Change on ch. 11 with CC#:9 (0x09) set 'pp' to CC# with any value and 'oo' to value
Outgoing: Use 99 instead of 9 to avoid conflict with button 9

[x] Translator 1.1: Knob 8 to passtrough
Options: swallow
Incoming: Control Change on ch. 11 with CC#:8 (0x08) set 'pp' to CC# with any value and 'oo' to value
Outgoing: Use 98 instead of 8 to avoid conflict with button 8

_____________________________________________________________ 

(This on converts knobs to button presses ccw/cw)
[x] Preset 2: X-touch Relative to simulated button on (1)

[x] Translator 2.0: Knob CCW
Options: swallow
Incoming: Control Change on ch. 11 with any CC# set 'qq' to CC# with any value and 'x1' to value
Rules:
  
  rr=qm
  qm=x1
  if x1>=rr then exit rules, skip Outgoing Action
  qq=qq+50
  
Outgoing: Control Change on ch. 12 with CC#:qq and value:1 (0x01), to port Bome MIDI Translator 1 Virtual Out

[x] Translator 2.1: Knob CW
Options: swallow
Incoming: Control Change on ch. 11 with any CC# set 'qq' to CC# with any value and 'x2' to value
Rules:
  if qq==8 then exit rules, skip Outgoing Action
  if qq==9 then exit rules, skip Outgoing Action
  rs=qs
  qs=x2
  if x2<=rs then exit rules, skip Outgoing Action
  qq=qq+50
  
  
Outgoing: Control Change on ch. 12 with CC#:qq and value:127 (0x7F), to port Bome MIDI Translator 1 Virtual Out

[x] Translator 2.2: Clean up after 60ms
Options: swallow
Incoming: Control Change on ch. 11 with any CC# set 'uu' to CC# with any value and 'xj' to value, on port X-TOUCH MINI
Rules:
  if qq==8 then exit rules, skip Outgoing Action
  if qq==9 then exit rules, skip Outgoing Action
  uu=uu+50
  
Outgoing: Control Change on ch. 12 with CC#:uu and value:62 (0x3E), delay:60 millisec


Edited by Canard
  • Thanks 2

System specs: 13900K, Nvidia 4090RTX, 64 GB RAM, 2TB SSD.  Rig: Next Level Racing Boing Military. VR: Varjo Aero (+Pimax (8KX)
Virpil VPC MongoosT-50CM2, Virpil VPC MongoosT-50CM3 Throttle, MFG Crosswind,
Winwing Orion 2 Hotas F16 (Throttle and stick) , Winwing Orion 2 F15EX throttle, Winwing F18 Phoenix MIP (VR)
Virpil Control Panel #2, Virpil Sharka 50 Control Panel, Total Controls Multi Function Button Box, Streamdeck
Software:  XRnecksafer, OpenKneeboard, SimShaker

Link to comment
Share on other sites

13 hours ago, Canard said:

Hi ChainsawAkimbo, I'll add my rules from Bome (for XTouch). They do the job but it is after some trial and error and can probably be a lot smarter. In short: I use Bome to clean and modify the Midi-signals to be used in Vjoy. I found that Vjoy was not able to react to all types of midi-signals so Bome converts the signals to something that can be used. 

So, My flow is:  Xtouch sends signals in to Bome and I use Bome to send modified Midi-signals out in a virtual midi-channel as output. In vjoy I convert the virtual midi-channel to control-inputs as a controller would do. Some tinkering was necessary there also (like axis to button if I remember correctly).   

The slider-part should be the easy one. In VJoy just trap the MIDI signal Axis (midi) to Axis (virtual vjoy-controller). In Bome I just converted the CC-value for some conflict-reason that I had. Probably not necessary for sliders. 

The knobs increase/decrease-rule below is the most complicated and I have trouble reading it myself now 🙂 . I wanted to convert movement to button presses for use in DCS. 

Thanks a lot! I'm sure that should help a few people. 🙂

 

Turns our Bome didn't like my Akai device (or vice versa), and crashes it quite regularily forcing me to re-plug it. Oh well.. 😄

  • Like 1

PC: i7 8700k 32GB DDR4 3200 Mhz  RTX 3070 Ti Hotas Warthog Thrustmaster TPR Track ir 5 Bodnar BBI-32 Beyerdynamic DT-770 Pro Focusrite Scarlett 18i20 Lewitt LCT 240 Pro
Jets: A-10A A-10C Warthog A-10C II F-14 Tomcat F-16C Viper F-5E Tiger II F/A-18C Hornet F-15C Su-33 MiG-29 F-86F Sabre 
Choppers: AH-64D Mi-8MTV2 UH-1H Huey Black shark 2 Maps: Nevada Normandy Persian gulf Syria The Channel 
WW2: BF-109 K4 Fw 190 D-9 Dora Mosquito FB VI P-51D Mustang Spitfire LF Mk. IX  Other: Supercarrier WWII Assets Pack NS 430 Navigation System Combined Arms 

Link to comment
Share on other sites

  • 1 year later...

This is an old topic that I created a few years ago, but I would like to bring it back into the light, and hope that the developers could see it.

  • Like 1
  • Thanks 1

2. The DCS MOVIE information!

4. REAL UFO FOOTAGE

I don't trust anything that bleeds for five days, and doesn't die

 

government: gives me money because of coronavirus

me: spends all money on the missing DCS modules

government: ... you dumbo! We won't give you money anymore

me: It's ok. I don't need anything else - I now have the entire DCS collection

my cat: looking at the empty bowl for a while and goes back to sleep

me: it's hard times, Mig, suck it up!

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

  • 3 months later...

I've been using the extremely cost effective X-touch Mini for X-plane 11/12 and MSFS2020.  

Came here looking for info on using it in DCS so I greatly appreciate those who contributed here.  I'll check out Bome Midi Translator/Vjoy and hopefully there will be more activity in this area🙂

  • Like 1

12th Gen i7 12700K, MSI Z690 Edge mobo, 32 GB of DDR4-3600 RAM (G.Skill Ripjaws V CL16). 

Gigabyte RTX4080 Eagle OC (Triple Fan, 16GB VRAM), ACER XV322QU 32" IPS monitor (running 2560x1440).

2TB NVMe M.2 Internal SSD (3D TLC NAND PCIe Gen 4 x4).

Windows 11.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...