Release Aussiedroid's Enhanced Thrustmaster Warthog Script

@Aussiedroid
Welcome back Sir, and thanks for the tips!

I already figured out some more... Its learning by doing, and watching the target gui console 🙃
bunch of new stuff, since my last flight in december.

@Clicker thank you also for the tips, ill do my best to get all the new functions^^

i also use VA, EDDI and HCS, awesome stuff! Ill give it a try

Thanks
 
Last edited:
Hi Aussiedroid, welcome back and thanks for the response, and thanks again to Clicker for the help while you were absent!

@CMDR Corleone - Been a while mate! Think @Clicker is correct in his analysis of your issue, and if I recall you had something similar last year till it was ironed out? Let us know if still having issues after the reinstall and trying different USB ports etc. Thinking about some of these reoccurring questions, you have encouraged me to start a Q&A in my Steam Guide too. WIP currently, but will start to add commonly asked questions and issues found.
Last night I unplugged my PCI USB3.0 card and removed the drivers (just an extra four ports, basic extension card), removed all Thrustmaster and Aussiedroid files, reinstalled everything (not the USB card), put the Warthog directly into the Mobo and tried again, still no joy. I even turned Corsair iCUE off which controls my liquid cooler via USB to make sure that wasn't interfering, I'm at a loss with it.

I'll post screenshots of relevant files and TARGET messages and so on later this evening.

I think it must be some kind of driver or software conflict, and somewhere on the USB side of things. On start up I get a lot of "bloop-bloop-bloop" USB connection discovered noises and my Logitech mouse is always reset to the lowest DPI setting and needs to be changed back to the highest, where I like to keep it. That has to be connected somehow to this mystery.

It seems strange that this is happening on a brand new build, new W10 install, very little clutter on a new C drive, the only common factor is the mouse DPI reset issue, but I fail to see how a Logitech mouse could be causing this.

Oh, the HOTAS is plugged in via USB extension cables, but I can't imagine that has any impact.

Anyway, screenshots to come...
 
@CMDR Corleone

those bleeps at the beginning are the initializing sounds from the connected devices. maybe you should also uninstall and reinstall all your usb devices, logitech´s, keyboard, mouse, etc... something is really messed up in your usb system....

i only get one "bleep" at the startup, but i do have a couple more usb devices...

what does your joy.cpl (u can start this via your search bar, lower left) say when fresh booted up ur system? and what if you start the target?
 
Hey @CMDR Corleone,

The challenge here I think will be to narrow down the culprit causing the drop out of the USB ports. Is is the HOTAS, is it the mouse or another device or possibly the mainboard or other hardware.

A couple further things to try (if you can):

- Can you install/setup the Warthog HOTAS on another PC and validate its working fine? I've had faulty hardware cause that 'bloop-bloop' looping sound before (a USB storage device in my case). It will bloop-bloop when creating the virtual device though, but should be once or twice only.

- How did you install your drivers on your fresh install? By this I mean PC wide not just TM stuff. Did you just let it grab the installs/software/drivers from Windows Update or did you manually source the latest drivers from the manufacturers websites? I have a lack of trust in MS always providing the correct and latest drivers so may be worth while uninstalling (or another fresh install) and manually grab all the latest files. You could also try programs like DriverBooster (there is a free version) which will analyse your PC to find old software/drivers. Warning though, use these sort of programs at your own risk as if your hardware is misidentified then it can cause issues. There may be a newer USB driver though. I used to use DriverBooster on my Win7 builds to source the latest USB drivers since they were hard to find elsewhere.

- I use extension cables on my end (3m ones) and it seems to work fine, but a faulty cable or loose connection can also cause that blooping looping. If that happens while the virtual device is created you may need to completely shut down the PC and then restart (likely it will glitch out otherwise like I used to find when my coding broke things lol). Sounds like you have already tried with/without anyways. If you can try another mouse/keyboard or anything else plugged into the USB though, it may help narrow down the cause.

- Power issue. Not enough juice going to the USB ports can cause drop outs. Likewise if your power supply is old and causing 'brown outs', it may still work but cause inconsistent behaviour PC wide. If you can share your specs I can see if it is strong enough supply for your hardware specs too.

Cheers, AD
 
Hi, thanks for the extended response!

Hey @CMDR Corleone,

The challenge here I think will be to narrow down the culprit causing the drop out of the USB ports. Is is the HOTAS, is it the mouse or another device or possibly the mainboard or other hardware.
I have removed and replaced every USB device, from Mobo connections forward and tracked an error to the Rift being plugged into one of the extension card slots, the Rift is now directly into the Mobo IO panel and no further USB conflicts exist, but the configuration still won't work for me.

A couple further things to try (if you can):

- Can you install/setup the Warthog HOTAS on another PC and validate its working fine? I've had faulty hardware cause that 'bloop-bloop' looping sound before (a USB storage device in my case). It will bloop-bloop when creating the virtual device though, but should be once or twice only.
Not really, or at least not easily, that would be a fairly last resort step. When I use joy.cpl everything is working fine, so the PC is definitely picking up the signals from the devices.

I have read that sometimes Warthog does not get on with USB3, so I have put both plugs into USB2, doesn't seem to have helped though!

- How did you install your drivers on your fresh install? By this I mean PC wide not just TM stuff. Did you just let it grab the installs/software/drivers from Windows Update or did you manually source the latest drivers from the manufacturers websites? I have a lack of trust in MS always providing the correct and latest drivers so may be worth while uninstalling (or another fresh install) and manually grab all the latest files. You could also try programs like DriverBooster (there is a free version) which will analyse your PC to find old software/drivers. Warning though, use these sort of programs at your own risk as if your hardware is misidentified then it can cause issues. There may be a newer USB driver though. I used to use DriverBooster on my Win7 builds to source the latest USB drivers since they were hard to find elsewhere.
Standard drivers came through W10 Pro, all hardware and device drivers are OEM downloads.

- I use extension cables on my end (3m ones) and it seems to work fine, but a faulty cable or loose connection can also cause that blooping looping. If that happens while the virtual device is created you may need to completely shut down the PC and then restart (likely it will glitch out otherwise like I used to find when my coding broke things lol). Sounds like you have already tried with/without anyways. If you can try another mouse/keyboard or anything else plugged into the USB though, it may help narrow down the cause.
No, they seem fine, I have tried with and without and have exactly the same results.

[/quote]- Power issue. Not enough juice going to the USB ports can cause drop outs. Likewise if your power supply is old and causing 'brown outs', it may still work but cause inconsistent behaviour PC wide. If you can share your specs I can see if it is strong enough supply for your hardware specs too.[/quote]

Corsair HX850i, single GPU, 1 x SSD, 1 x HDD, more than enough power.

I think the Throttle is the problem.

When I try to run the script in Target GUI or Script Editor I get this:


Currently plugged USB HID devices[2]:
1: "Throttle - HOTAS Warthog" - "USB\VID_044F&PID_0404&REV_0100"
2: "Joystick - HOTAS Warthog" - "USB\VID_044F&PID_0402&REV_0100"
USB HID device "Throttle - HOTAS Warthog"(USB\VID_044F&PID_0404\6&2AF6C4ED&0&1) selected
USB HID device "Joystick - HOTAS Warthog"(USB\VID_044F&PID_0402\6&2AF6C4ED&0&2) selected
USB HID device with hardware id "VID_044F&PID_0403" cannot be found
USB HID device with hardware id "VID_044F&PID_B10B" cannot be found
USB HID device with hardware id "VID_044F&PID_B687" cannot be found
Virtual HID devices managed by script!
Connecting virtual joystick...Done
Device name set to Thrustmaster Combined
Connecting virtual keyboard...Done
Connecting virtual mouse (absolute axes)...Done



I also get some funky results in the device analyser, I'll press buttons/switches and it will show on the Throttle or Joystick read out that they are being pressed, but not on the virtual controller, this is normal, the button being recognised in both locations:



This is what I am getting from several buttons/switches, you'll notice the button press is acknowledged but not present in the virtual game controller:



When I go into the game and look for the correct control selection it isn't there:



It's getting a bit frustrating! To take it right down to basics, just in case I'm being a real nitwit, these are the steps I have taken:

  • Install Target, HOTAS drivers, update firmware etc.
  • Unzip Aussiedroid zip file to a folder somewhere
  • Copy Aussiedroid Warthog Enhanced 4.1.0.binds to AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
  • Open AD_EDUserPrefs_v4.1.0 in Script Editor, change as required, save
  • Open AD_ED_v4.1.0 in Script Editor, Compile, Save
  • Close Script Editor
  • Run AD_ED_v4.1.0 in Target GUI
  • Run ED, find Thrustmaster Combined in control options
Is there something really silly I'm just not doing?
 
Hey again @CMDR Corleone,

I can see the binding file present in the last screenshot you shared. It's the one last in the list called 'Aussiedroid Warthog Enhanced 4.1.0'. Can you load that one at all or am I misunderstanding?

Device Analyzer should be showing all the physical actions for anything pressed/used. Event Tester may not show everything though as not everything has a keyboard mapping.

Cheers, AD
 


Run ED, find Thrustmaster Combined in control options
You say "find Thrustmaster Combined in control options"...but you mean "Select Aussiedroid Warthog Enhanced 4.1.0"...right?

ED does not have a pre-canned "Thrustmaster Combined" ... you have to select the Aussiedroid one.

Hope this helps
Clicker
 
Hello,
I come back to communications in the game, it does not work for me.

but I'm not sure of the file on the Github.

For the trembling during the screen prints, I still have not find.

Ptimale
 
Ok, thank you for the feedback. I find GitHub confusing too :)

On GitHub, I have uploaded a different version of the AD_EDFunctions_4.X.X.tmh. There should be a download option on GitHub. When you have downloaded the new version you will need to rename it to AD_EDFunctions_4.1.0.tmh. All the other files you can ignore.

Alternatively, you can paste this over your initMicCommander code in your existing file (make a backup!):

C++:
    int initMicCommander() {                                                                    // FUNCTION: Manages Microphone Internal/External Push-to-Talk buttons
        if(Throttle[MSP]) {                                                                        // [HOLD PTT]
            MicCheckHold = 1;                                                                    // Enable PTT Buttons
            if(Throttle[EFROVER]) {                                                                // If Mic Toggle OFF:    Use Internal PTT Voice Comms/Open Comms
                if(ExternalMicInverse) {                                                        // Will Invert VoiceAttack listening when Internal Comms are used
                        ActKey(KEYON+PULSE+ToggleVoiceAttackGlobal);
                        ActKey(KEYON+PULSE+InternalVoiceCommsPTT); }
                else {  ActKey(KEYON+PULSE+InternalVoiceCommsPTT); } }
            if(Throttle[EFRNORM]) {                                                                // If Mic Toggle ON:    Use External PTT Voice Comms/Open Comms
              if(ExternalMicInverse) {                                                            // Enables Inversed External PTT Channels (Enabling Discord will Disable VoiceAttack)
                if(!MicExternalAction) {                                                        // Check if user preference match requirements for 'ExternalMicInverse' functionality (See NOTE 2 in AD_EDSettings.tmh file)
                    ActKey(KEYON+PULSE+ToggleVoiceAttackGlobal);                                //     NOTE: This will only work correctly if Listening is enabled (ALT+F2) in VoiceAttack prior to first press of the PTT button
                    ActKey(KEYON+DOWN+ExternalVoiceCommsPTT);
                    MicExtHoldCheck = 1; } }
              if(!ExternalMicInverse) {                                                            // Enables Independant External PTT Channels (Each channel separated by Pinky Trigger and can be used in any combination)
                if(!Joystick[S4]) {
                    if(MicExternalAction) {                                                        // Check if user preference for External Voice is Toggle or PTT
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);
                            MicExtPulseCheck = 1; }
                    else {    ActKey(KEYON+DOWN+ExternalVoiceCommsPTT);
                            MicExtHoldCheck = 1; } }
                if(Joystick[S4]) {                                                                // If Mic Toggle ON + Pinky Trigger Held:  Use Alternative External PTT Voice Comms Open Comms
                    if(MicExternalActionALT) {                                                    // Check if user preference for Alt. External Voice is Toggle or PTT
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT_ALT);
                            MicExtPulseCheckALT = 1; }
                    else {    ActKey(KEYON+DOWN+ExternalVoiceCommsPTT_ALT);
                            MicExtHoldCheckALT = 1; } } } } }
        if(!Throttle[MSP] & MicCheckHold) {                                                        // [HOLD PTT]
            MicCheckHold=!MicCheckHold;                                                            // Release PTT Buttons
            if(Throttle[EFROVER]) {                                                                // If Mic Toggle OFF:    Release Internal PTT Voice Comms Open Comms
                if(ExternalMicInverse) {                                                        // Will Invert VoiceAttack listening when Internal Comms are used
                    ActKey(KEYON+PULSE+ToggleVoiceAttackGlobal); } }
            if(Throttle[EFRNORM]) {                                                              
                if(MicExtPulseCheck) {                                                            // Check if Internal, External or Alt. External was pressed, then release accordingly.
                    ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);                                    // If Mic Toggle ON:    Release External PTT Voice Comms Open Comms
                    MicExtPulseCheck = 0; }
                if(MicExtPulseCheckALT) {
                    ActKey(KEYON+PULSE+ExternalVoiceCommsPTT_ALT);                                // If Mic Toggle ON:    Release Alternative External PTT Voice Comms Open Comms
                    MicExtPulseCheckALT = 0; }
                if(ExternalMicInverse & MicExtHoldCheck) {
                    ActKey(KEYON+PULSE+ToggleVoiceAttackGlobal); }                                // Toggles VoiceAttack Back ON
                if(MicExtHoldCheck | MicExtHoldCheckALT) {
                    ActKey(KEYON+UP+ExternalVoiceCommsPTT);                                        // Release HOLDS
                    ActKey(KEYON+UP+ExternalVoiceCommsPTT_ALT);
                    MicExtHoldCheck = 0;
                    MicExtHoldCheckALT = 0; } } }
        if(Throttle[EOLMOTOR]) {                                                                // [TOGGLE PTT]
            MicCheckToggle = 1;                                                                    // Enable Toggle
            if(Throttle[EFROVER]) {
                if(VerboseOutput) printf("Voice Comms: ^^  INTERNAL MIC OPEN  ^^\x0a");
                ActKey(KEYON+PULSE+InternalVoiceCommsPTT); }                                    // If Mic Toggle OFF:    Use Internal PTT Voice Comms Open Comms
            if(Throttle[EFRNORM]) {
                if(!Joystick[S4]) {
                    if(VerboseOutput) printf("Voice Comms: ^^  MAIN EXTERNAL MIC OPEN  ^^\x0a");
                    if(MicExternalAction)  ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);            // If Mic Toggle ON:    Use External PTT Voice Comms Open Comms
                    if(!MicExternalAction) ActKey(KEYON+DOWN+ExternalVoiceCommsPTT);
                    MicExtToggleCheck = 1; }
                if(Joystick[S4]) {
                    if(ExternalMicCombined) {                                                    // Check if user preference for External Voice Comms is Combined or Separate
                        if(VerboseOutput) printf("Voice Comms: ^^  BOTH EXTERNAL MICS OPEN  ^^\x0a");
                        MicExtToggleCombo = 1;
                        if(MicExternalAction & MicExternalActionALT) {                            // Depending on the user preferences, enable the correct combination of External Voice Comms
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT_ALT); }
                        if(!MicExternalAction & MicExternalActionALT) {
                            ActKey(KEYON+DOWN+ExternalVoiceCommsPTT);
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT_ALT); }
                        if(MicExternalAction & !MicExternalActionALT) {
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);
                            ActKey(KEYON+DOWN+ExternalVoiceCommsPTT_ALT); }
                        if(!MicExternalAction & !MicExternalActionALT) {
                            ActKey(KEYON+DOWN+ExternalVoiceCommsPTT);
                            ActKey(KEYON+DOWN+ExternalVoiceCommsPTT_ALT); }    }
                    if(!ExternalMicCombined) {
                        if(VerboseOutput) printf("Voice Comms: ^^  ALT EXTERNAL MIC OPEN  ^^\x0a");
                        if(MicExternalActionALT)  ActKey(KEYON+PULSE+ExternalVoiceCommsPTT_ALT);// If Mic Toggle ON:  Use Alternative External PTT Voice Comms Open Comms  
                        if(!MicExternalActionALT) ActKey(KEYON+DOWN+ExternalVoiceCommsPTT_ALT);
                        MicExtToggleCheckALT = 1; } } } }
        if(!Throttle[EOLMOTOR] & MicCheckToggle) {                                                // [TOGGLE PTT]
            MicCheckToggle=!MicCheckToggle;                                                        // Release Toggle
            if(Throttle[EFROVER]) {
                if(VerboseOutput) printf("Voice Comms: <<  INTERNAL MIC CLOSED  <<\x0a");
                ActKey(KEYON+PULSE+InternalVoiceCommsPTT); }                                    // If Mic Toggle OFF:    Release Internal PTT Voice Comms Open Comms
            if(Throttle[EFRNORM]) {
                if(ExternalMicCombined) {                                                        // Check if user preference for External Voice Comms is Combined
                    if(MicExtToggleCombo) {                                                        // If Mic Toggle ON + Combined External:    Release External PTT Voice Comms Open Comms
                        if(VerboseOutput) printf("Voice Comms: <<  BOTH EXTERNAL MICS CLOSED  <<\x0a");
                        MicExtToggleCombo = 0;
                        if(MicExternalAction & MicExternalActionALT) {                            // Depending on the user preferences, release the correct combination of External Voice Comms
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT_ALT); }
                        if(!MicExternalAction & MicExternalActionALT) {
                            ActKey(KEYON+UP+ExternalVoiceCommsPTT);
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT_ALT); }
                        if(MicExternalAction & !MicExternalActionALT) {
                            ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);
                            ActKey(KEYON+UP+ExternalVoiceCommsPTT_ALT); }
                        if(!MicExternalAction & !MicExternalActionALT) {
                            ActKey(KEYON+UP+ExternalVoiceCommsPTT);
                            ActKey(KEYON+UP+ExternalVoiceCommsPTT_ALT); } }
                    if(MicExtToggleCheck) {                                                        // If Mic Toggle ON + Combined External:    Release External PTT Voice Comms Open Comms
                        if(VerboseOutput) printf("Voice Comms: <<  MAIN EXTERNAL MIC CLOSED  <<\x0a");
                        if(MicExternalAction)  ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);
                        if(!MicExternalAction) ActKey(KEYON+UP+ExternalVoiceCommsPTT);
                        MicExtToggleCheck = 0; } }
                if(!ExternalMicCombined) {                                                        // Check if user preference for External Voice Comms is Separate
                    if(MicExtToggleCheck) {                                                        // If Mic Toggle ON + Not Combined External:    Release External PTT Voice Comms Open Comms
                        if(VerboseOutput) printf("Voice Comms: <<  MAIN EXTERNAL MIC CLOSED  <<\x0a");
                        if(MicExternalAction)  ActKey(KEYON+PULSE+ExternalVoiceCommsPTT);
                        if(!MicExternalAction) ActKey(KEYON+UP+ExternalVoiceCommsPTT);
                        MicExtToggleCheck = 0; }
                    if(MicExtToggleCheckALT) {                                                    // If Mic Toggle ON + Not Combined External:    Release Alt. External PTT Voice Comms Open Comms
                        if(VerboseOutput) printf("Voice Comms: <<  ALT EXTERNAL MIC CLOSED  <<\x0a");
                        if(MicExternalActionALT)  ActKey(KEYON+PULSE+ExternalVoiceCommsPTT_ALT);
                        if(!MicExternalActionALT) ActKey(KEYON+UP+ExternalVoiceCommsPTT_ALT);
                        MicExtToggleCheckALT = 0; } } } } }

If it is still not working then I'll keep looking into it.

Cheers, AD
 
Hey, hey, hey! Welcome back AD!

Here's a little something I've been toying with lately.
(apologies for the wall-of text....I did try to keep it simple...honest!)

TARGET Script - Making noises - "part 1"

ED already provides quite a bit of audible feedback via their COVAS as well as their excellent sound effects, and let's face it what I'm suggesting here will not replace that...well maybe...maybe not...depends on your own creativity!

Now, I've spent a bit of time researching the best way I can cause some sort of audible feedback based on a button press within TARGET and here's what I came up with.

Ok, so, I'm cheating here as I'm using an external application.
If I ever work out a more elegant way to make noises triggered by pressing buttons etc from within TARGET, I'll write a "part 2".

Whilst not exactly straight forward, it really is not hard.
I'm using "Voice Attack" (https://voiceattack.com/) as it's free if you only need one profile (and 20 commands) and only US$10 if you need more.
If you already have VA and, for example EDDI or an HCS Voice Pack or two you can still use this method.
An added benefit is that VA allows you to either play a sound file or use its inbuilt text-to-speech engine.
If you don't already have VA, go ahead and download and install on your PC.

Desired outcome of this exercise;
In this mini tutorial, I'll create audible feedback each time we change our joystick curves by sending a special key press to VA which in turn triggers a simple command and use VA's inbuilt text-to-speech engine.

What we need to do;
1) Create some new defines within AD_EDKeymap
2) Create several simple lines of code within AD_EDFunctions
3) Create a new profile in VA and add new commands

Here we go...
First up, open the AD_ED_v4.1.0.tmc script file in the TARGET Script Editor and hit compile. This will load all the supporting files, then...

1) Open the AD_EDKeyMap file and at line 259 (end of External Bindings section) add...
Code:
    define Curve0                                R_CTL+USB[0x24]            // CTRL+7        (Create a command in VA to play text-to-speech response for curve setting)
    define Curve1                                R_CTL+USB[0x25]            // CTRL+8        (Create a command in VA to play text-to-speech response for curve setting)
    define Curve2                                R_CTL+USB[0x26]            // CTRL+9        (Create a command in VA to play text-to-speech response for curve setting)

Save the changes.
I've used these key combos for several reasons;
a) they weren't already in use as far as I can tell
b) I've set my VA profile to disable pass-through for the new commands...so if you use the keyboard at all during the game, the keys I've used here are unlikely to cause problems.

2) Open the AD_EDHardware file and modify initSetJoystickCurves to look like this...
(I just messed with lines 3-13 of this code...can't use code formatting WITH BOLD unfortunately)

Code:
    int initSetJoystickCurves() {                                                                // Autopilot Select Switch position sets Joystick Curve Profile
        profile = 1;                                                                            // Three different presets are selectable On-The-Fly

// from here....

        int crvtxt = Curve1;
        if(Throttle[APPAT])    {
            profile = 0;
            crvtxt = Curve0;
        }
        if(Throttle[APALT]) {
            profile = 2;
            crvtxt = Curve2;
        }

        ActKey(KEYON+PULSE+crvtxt);

// ...to here

        SetSCurve(&Joystick, JOYX, 0, JS_DEADZONE, 0, JS_CURVE[profile], JS_ZOOM[profile]);
        SetSCurve(&Joystick, JOYY, 0, JS_DEADZONE, 0, JS_CURVE[profile], JS_ZOOM[profile]);
        if(UseRuddersT16000 & UseRudderAxisCurves)    SetSCurve(&TFRPRudder,      TRUDDER,         0, TR_DEADZONE, 0, YAW_CURVE[profile], JS_ZOOM[profile]);
        else if(UseRuddersTPR & UseRudderAxisCurves)SetSCurve(&TFRPHARudder, TFRPHA_RUDDER, 0, TR_DEADZONE, 0, YAW_CURVE[profile], JS_ZOOM[profile]);
        if(!FAOFFToggle) {
            if(UseRudderAxisCurves & VerboseOutput) printf("Joystick Profile[%d]: Yaw=%d, Curve=%d, Zoom=%d\x0a", profile, YAW_CURVE[profile], JS_CURVE[profile], JS_ZOOM[profile]);
            else if(VerboseOutput)                     printf("Joystick Profile[%d]: Curve=%d, Zoom=%d\x0a", profile, JS_CURVE[profile], JS_ZOOM[profile]); } }

Save the changes and compile again to ensure no typos.
Run the script and use the Auto Pilot switch up/middle/down, again just to be sure we don't have any errors.
At this point you'll get the Joystick Profile messages printed to the console but no sound.

3) Rather than trying to instruct you how to create commands in VA, I've provided a .vap file as a shortcut.
(I can explain how if anyone wants extra instruction...just ask!)

Instructions...
Grab the attached ZIP file and unzip the provided VAP file to anywhere you like (C:\temp is as good as any)
Run Voice Attack (usually good idea to run as Administrator), select "import a new profile", and select the vap file we unzipped above.
If you go ahead and edit this profile you'll see the three commands called "Curve0", "Curve1" and "Curve2".
Now, if you are already using VA along with a previously bought or created profile, then switch back to that profile now in the main window and hit the edit button.
Select "Options" and select (or edit) the "Include commands from other profiles setting"...click the "+" button and choose my vap profile from the dropdown menu.
Click "ok" and "done" to return to the main VA Window.
If not already set, enable keyboard shortcuts by clicking the keyboard icon.

Outcomes;
Now, each time we adjust the Auto Pilot Switch position (on the Throttle) in order to change our joystick curves on the fly, we should hear VA telling us which position we've selected.

Customising:
Obviously, getting in and editing these couple of commands you can get VA to use it's text-to-speech engine to say whatever you want.
Alternately, you can change the command to play a sound file (eg ding.wav)...all you need then is navigate to where you've downloaded a bunch of sounds you wish to use, or, navigate to c:\windows\media if you're inclined to use the pre-canned noises that come with Windows.

Hopefully this proves a useful addition or inspiration for even more improvement to what is already and awesome tool/product.

If anyone needs clarification or otherwise can't get it to work, just ask!

Cheers
Clicker

p.s. OHHHH...one other thing...Voice Attack requires the Windows Speech Engine to be installed if you don't already have this!
Even if you don't intend to use VA to recognise voice commands, you still need the engine.
Just wanted to say, awesome work mate!!

Had a bit of a further look into this over the weekend. I need to test out when I can, but I am keen to add this to the profile. Thinking for a few things like the Joystick profiles, Throttle profiles or other macros (autodock etc) may also benefit from an audible feedback. Implementation seems rather straight forward, and would not break other things assuming I can find enough key mappings to map it all out lol. Dusted off and updated VA over weekend... although for the life of me I could not find where to add a new profile .. probably too tired haha!

Thanks again for sharing!
AD
 
Yeah, no problem...at the end of the day, it was a simple and obvious option for me.

“Create New Profile” (= “import profile”) is right next to the “Edit Profile” button.

;-)
 
I just realised that you can’t create a new profile or even import my profile (commands) on the trial version!
I’ll write up some instructions on how to create the actual commands in the trial version and post here later today.

(Sorry)

Clicker
 
Ok, so, whilst the unpaid, trial version won’t let you import a profile, it will let you import commands.

1) Fire up VA in Administrator mode
2) Select the “Edit Profile” button (or press Alt+E)
3) Select “Import Commands” button (lower left hand corner of the window)
4) Navigate to where you unzipped my ED-Clicker-Profile.vap file and select it
5) Select all the commands (tick the check boxes)
6) Click Import
7) Click “Apply”, then “Done”

You can test by ensuring the “Keyboard Shortcuts” are enabled (click the Keyboard icon on the right IF it has a RED strikethrough showing)...then press RightControl+7, RightControl+8 and/or RightControl+9.

Cheers
Clicker

p.s. only key conflict I can see in your profile, AD is the “Wingman Target” and FSS Camera Pitch Increase which use the RCTRL key (by itself).
Perhaps this could be remapped to RCTL+T
 
Last edited:
Hi AD and all CMDRs,

AD, you has helped me a lot already so that my former probs were solved completely for a long time but now I am facing an new issue for the last weeks.
After I have made ED Update and also the AD script to 4.1 update and added in parallel a second voice from HCS voice packs I am having issues with the performance of my commands.
I have checked the setting and all is still as it should be but most of my spoken commands take 10 times longer. I cannot wait that long in a battle that the commands are finished. So I have to press buttons manually.
First I thought that if the commands were performed once they would be in the cache or so to perform faster but no chance.
Also since I am having a docking computer which came with the new ED update even the launch sequence is not fulfilled any longer.
Might that issue related to your script?
I have not tried to remove the docking computer from the ship and see if the issue is still there. So I will do so and keeo you posted.

Does anyone have any clue and having or had the same issues with the commands from Voice attack with the AD 4.1. script?

BR
CMDR Edward Perryman Cole aka major7079
 
Hi @major7079 ,

I’ve seen similar issues mentioned on the HCS Voicepack forum and discord.
It is usually VA+HCS, so, have you tried to remove then reinstall Voice Attack then one of your HCS VoicePacks from scratch using the very latest veraions?

Clicker
 
Hey @major7079,

Not sure how it may be the updated script causing it, but out of curiosity, if you switch back and run the 4.0 script do you get the same laggy behaviour? or to put it another way, can we isolate that it is definitely the 4.1 script causing the lag or could it be something else system related?

Would you have happened to update to Windows 1903 update recently? I've personally had some laggy behaviour non-game specific with the OS since my update. Not sure what it is yet but suspect video drivers.

Cheers, AD
 
I’ve had issues since updating to 1903....I had to remove and re-install TARGET and all the drivers as it refused to work at all....no laggy issues with HCS Voicepacks/VA though.
 
Top Bottom