VoiceAttack beta v1.5.8.13 is out on the site

755 views
Skip to first unread message

Gary

unread,
Jan 5, 2016, 11:05:48 PM1/5/16
to VoiceAttack
VoiceAttack beta v1.5.8.13 is out on the site :)

It has some fixes and some new state tokens (well, actually a lot of new state tokens) that deal with the joystick.  I got the missing POV tokens in, plus tokens to give info on various aspects of the state of your joystick.  You can use the info to build the triggers (with loops) that some have asked for (like with sliders and joystick positions), or, use as modifiers when executing commands...  maybe you'd want to check if the joystick is pushed forward when firing missiles to add some other or additional type of response.  Just more stuff to play with, I guess ;)

The beta can be downloaded here :  http://www.voiceattack.com/beta.aspx
For those with installer issues, the zipped directory is here:  http://www.voiceattack.com/filesend.aspx?id=VoiceAttack_15813.zip

As always, notes are below.

Gary


v1.5.8.13

   - Improvements
   
     -  Added missing POV/hat tokens (see docs for more
        complete details):
        {STATE_JOYSTICK[1|2]POVENABLED}.  Indicates whether
        or not POV is enabled for the indicated stick.
        
        {STATE_JOYSTICK[1|2]POV[1|2|3|4]TYPE}.  Indicates
        the type of POV switching mode set in joystick
        options.
        
        {STATE_JOYSTICK[1|2]POV[1|2|3|4]}.  Displays the
        direction the indicated stick/POV controller is
        being pressed (depends on switching mode).
        
        {STATE_JOYSTICK[1|2]POV[1|2|3|4]_NUMERIC} - Use this
        token to get the numeric value of the POV (for 
        finer level of control if the switching mode does
        not suit the need).  
        
     -  Added a whole BUNCH of new joystick state tokens
        to give all kinds of info about your joystick's 
        state.  You can use these for your stuff like
        command modifiers or as triggers if used with some 
        fancy looping.  There are like 28 different
        types, so, I won't list them here (they're in the
        docs in the tokens section).  Finally a way to handle
        some of the, 'analog' controls on joysticks ;)
   
     -  Added new action, 'Write Text to File'.  This will
        allow you to specify text to write to a file that
        you choose.  This action accepts tokens in both
        the text and file boxes.  As always, use with
        caution ;)

   - Bug Fixes
   
     -  Fixed issue where if listening was suspended,
        'reject pending speech' was selected, and a
        command was issued when the listening was off and
        then enabled mid-command, the command would still
        execute.
        
     -  Fixed POV options not saving properly on joystick
        options page.
        
     -  Added some helper functionality to work with directional
        keys in DirectX mode.  Before, if you had numlock
        on and issued a command to press a directional key,
        the numpad numeric value for the same key would be
        pressed.  The helper code looks for certain elements
        and helps produce a directional key press.
        
     -  Fixed issue where exec command dialog would not
        save if referenced command was deleted before
        saving profile.
        
v1.5.8.12

   - Improvements
   
     -  Windows environment variables (such as %WINDIR%, 
        %APPDIR%, %PROGRAMFILES%, etc.) will be parsed
        out any place that takes tokens.  Note that the
        environment variables need to be surrounded by
        percent signs (%).  You already knew that, 
        though ;)
        
   - Bug Fixes
     -  Fixed introduced issue with linked profiles
        from v1.5.8.11.


v1.5.8.11

   - Improvements
   
     -  Added the ability to inhibit the execution
        of multiple commands with hotkey shortcuts.
        This is only available if all involved commands
        have the, 'Shortcut is invoked only when all keys
        are released' option set in the, 'When I press...'
        Command Shortcut screen.
        For instance, let's say you have three commands:
        One that executes when F1 is released, and
        another that executes when CTRL + F1 is released.
        Before, if you pressed CTRL + F1 down and then 
        happened to release F1 first, the command associated 
        with F1 would execute, followed by the command 
        associated with CTRL + F1.  In this release, only 
        the command associated with CTRL + F1 will be executed.
        F1 will still execute when pressed on its own.
        Apologies to anybody that's gotten used to this 
        behavior, but this is the way it should have been 
        since the beginning o_O.
        
     -  Added new data type: Date/Time.  With the new data
        type comes a new Set Date/Time feature, plus an 
        extra tab on the, Condition (If and Else If statements)
        and Loop start screens.  There are also some new
        tokens that work exactly like the existing date and
        time tokens (except the new tokens accept a variable 
        name).  Plugin interface has been updated to include 
        the date/time values (this is now version 3... still 
        backward compatible).
        
        

v1.5.8.9

   - Improvements
   
      -  Added yet another larger screen size,
         mostly for those with 4k monitors that
         maintain 100% scaling size (and not the
         default 150%).
         
   - Bug Fixes
    
      -  Fixed issue where grouped commands was 
         throwing an exception on key press when 
         focused and collapsed.
         
      -  Fixed issue with dynamic commands containing
         tokens breaking under certain conditions.

v1.5.8.8

  - Improvements
  
    -  Added, 'Select All' and 'Select None' in 
       command action list.  'Select all' has
       always been there (CTRL + A)... just needed
       some user interface to indicate that it's 
       there ;)
       
    -  Show latest entry only added to log as an
       option.
       
    
    - Bug Fixes
    
      -  Fixed issue where End Condition 'Exit when
         condition met/not met' were not exiting.
      

v1.5.8.7

  - Improvements
  
    -  Added 'Else If' action for condition blocks.
       Reduces the need for multiple begin/end 
       blocks.  You can finally do if/else if/else.
       
    -  Added Loop start/Loop End actions.  While a 
       condition is met, you can loop a section of
       your command.  Loops can be nested.
       
    -  Added explicit 'Exit Command' action (no longer
       need to add a jump and set a flag unless you 
       want to).  Added this to make it a little bit
       more obvious.  Note this also does not stop
       any executed subcommands (it just exits).
    
    -  Moved delete, export, import and create to
       new, 'More' button on the main screen.  The
       profile lists are becoming a lot longer than
       I had anticipated, so I've consolidated 
       everything under one button to clean things up
       a bit.
       
    -  Added new global hotkey option for listening:
       'Listen then stop listening after recognition
       completes.'  This turns on listening only
       until the speech engine recognizes speech.
       The command itself can be recognized or
       unrecognized.  This is available for hotkeys,
       mouse and joystick button.
       
    -  Listening and stop command icons on main screen
       now include hotkey info in tool tips.  The 
       info provided also indicates if the hotkeys are
       overridden at the profile level.

  - Bug Fixes
  
    -  Fixed suffix issues when using condition actions.
       
    -  Fixed mouse button state tokens not reporting
       correctly when multiple buttons pressed.
       
    -  Fixed keyboard state tokens sometimes sticking
       on first access.
       
    -  Mic level bar not drawing correctly for larger
       size screens has been fixed.
       
v1.5.8.6

  - Improvements
  
    - New set of tokens for state of keyboard,
      mouse and joystick.  What I see this being 
      used for mostly is to alter behavior for 
      commands based on the state of your devices.
      For instance, if the right mouse button
      is down when I say, 'fire weapons',
      missiles are fired instead of photons 
      (lol).  Also, if the 'x' button is down,
      fire both photons and missiles.
      
      There is one keyboard token:
      
      {STATE_KEYSTATE:key}
      'key' parameter can be any key you can type in
      a token:
      'A', 'B', 'C', 'ß', 'ö', 'ñ', 'ç',
      as well as keys you can't type in a token: 
      ENTER, TAB, LCTRL, ARROWR (see documentation
      for full list).
      
      So, if you want to test to see if F10 is 
      down, just use the following token:
      {STATE_KEYSTATE:F10}.  To test for the letter
      'A', just use this token: {STATE_KEYSTATE:A}
      
      If a keyboard key is down, the replaced value
      of the token will be "1".  If the key is not
      down, the value will be "0".

      
      There are five mouse tokens:
      
      {STATE_LEFTMOUSEBUTTON}
      {STATE_RIGHTMOUSEBUTTON}
      {STATE_MIDDLEMOUSEBUTTON}
      {STATE_FORWARDMOUSEBUTTON}
      {STATE_BACKMOUSEBUTTON}
      
      These should be pretty straight forward. If you
      want to test for the right mouse button, use
      token {STATE_RIGHTMOUSEBUTTON}.
      
      If the mouse button is pressed down, the replaced 
      value will be "1".  If the mouse button is not 
      pressed, the value will be "0".
      
      
      Lastly, we have two joystick tokens:
      
      {STATE_JOYSTICK1BUTTON:buttonNumber}
      {STATE_JOYSTICK2BUTTON:buttonNumber}
      
      The, 'buttonNumber' parameter is the number of the
      button on the desired stick.  To test if button 10
      is down on joystick 2, just use this token:
      {STATE_JOYSTICK2BUTTON:10}
      
      Once again, if the button is down on the tested
      stick, the replaced value will be "1".  If the
      button is not down, the value will be "0".
      
   -  Added token {STATE_AUDIOLEVEL} token to indicate 
      the currently reported audio level from the speech
      engine.  The replaced value will be from "0" to 
      "100".
      
   -  Added token {STATE_LISTENING} to test if VoiceAttack
      is, 'listening'.  If, 'listening' is on, the replaced
      value will be "1".  If, 'listening' is off, the 
      replaced value will be "0".
      
   -  Added token {STATE_SHORTCUTS} to test if VoiceAttack's
      shortcuts are enabled.  If shortcuts are enabled, the 
      replaced value will be "1".  Otherwise, the replaced 
      value will be "0".
      
   -  Added token {STATE_JOYSTICKBUTTONS} to test if VoiceAttack's
      joystick buttons are enabled.  If joystick buttons are 
      enabled, the replaced value will be "1".  Otherwise, the 
      replaced value will be "0".


v1.5.8.5

  - Bug fixes
  
    - More DirectX mapping issues resolved.
    
    - Updated order of event handling on
      startup to see if it helps with some of
      the exceptions that are cropping up
      related to the speech engine.

v1.5.8.3

  - Bug fixes
  
    - Fixed application launch issue introduced in
      v1.5.8.2.

v1.5.8.2

  - Improvements
  
    -  Mouse action screen organized a little bit.
       Move actions are now on one tab, click actions
       are on another.  Navigating to mouse actions
       from the command screen is now from a flyout
       menu with move and click items.
       
    -  Mouse move position can now be set as relative
       from any corner.  Top-left is still default.
       
    -  Mouse move position can now be set by text or
       token.  If the value in place is evaluated as
       a valid integer, the position will be used. 
       Otherwise, no movement will occur (info given
       in log).  If the evaluated coordinate is outside
       of the boundaries of the area, the boundary will
       still be used.
    
    -  The 'wait for exit' option for launching 
       applications now allows you to capture the stdout
       and exit codes of apps that provide them.  Simply
       add a text variable name for stdout and/or an 
       integer variable name for the exit code and those
       variables will be filled.  Access the values via
       token or test using conditional (if) statements.
       
    -  Added ability to set a pause duration to a decimal
       variable.  If the variable value is Not Set, the
       pause will be zero seconds.  Note that decimal 
       variables can be set to random values ;)
       
    -  'Add pause' action on command screen is now set by
       flyout menu.  You can choose either, 'Add pause'
       or, 'Add variable pause'.
  
  - Bug fixes
  
    - Fixed font of main screen not following new sizing
      rules.
      
    - Fixed dynamic tts caching replaced token values.
    
    - Fixed issue where duplicating set decimal action 
      was not capturing both random values. 
      
    - Fixed issue where jump marker/jump located both
      in a suffix was not jumping to proper location.
      
    - Fixed issue with execute command by name not
      finding dynamic commands.
      
    - Fixed 'stop command if target window focus is lost'
      not unchecking if, 'repeats continuously' was 
      selected.


v1.5.8.1
  
  - Improvements
  
    - Support added for three screen sizes : 
      Normal, larger, largest.  The setting for this
      is on the options screen.  I decided that the
      screen sizes should be independent of the
      Windows scaling.  It was a lot more work, but
      I think that forcing the user to have to globally
      change their font to get a larger screen is not a 
      good idea. 
    
    - Added option, 'Disable Acoustic Echo Cancellation'
      to attempt to aid in recognition.
      
    - Added dynamic responses to text-to-speech.  Just as with
      using dynamic commands, you can now use square brackets to 
      have more dynamic responses with text-to-speech.
      Before, if you wanted a random response with slight
      variation, you would have to explicitly indicate each 
      variation:
      [fire;launch;dispatch] the [missiles;weapons;porcupine] will result
      in a random respons of:
      
      fire the missiles
      fire the weapons
      fire the porcupine
      launch the missiles
      launch the weapons
      launch the porcupine
      dispatch the missiles
      dispatch the weapons
      dispatch the porcupine
      
      
  - Bug Fixes
  
    - Recorder screen now actually resizable.  Looks like
      I either started that job or reverted some code.  
      Works now ;)
      
        
   

Phil Hodgkins

unread,
Jan 6, 2016, 6:34:34 AM1/6/16
to VoiceAttack
Thanks for the joystick stuff :)


Phil Hodgkins

unread,
Jan 6, 2016, 6:39:38 AM1/6/16
to VoiceAttack
Where can I find the docs for the beta?

Gary

unread,
Jan 6, 2016, 11:21:22 AM1/6/16
to VoiceAttack
Hi, Phil.

It's installed with the beta (VoiceAttackHelp.pdf).

Gary

Phil Hodgkins

unread,
Jan 7, 2016, 6:01:30 AM1/7/16
to VoiceAttack
Cheers, Gary - looked everywhere online I could think of :-)

cmdr.deepwell

unread,
Jan 8, 2016, 7:36:03 AM1/8/16
to VoiceAttack
Hello Gary,

I have been experiencing the following issue with the new beta
I set a command to have keybinding for Up arrow on pressing the Up arrow key, but when I  use this command it is changed to Left Shift + Num8. This happens with all of the arrow keys.
Once reverted to 1.5.8.12 everything worked as expected again.

I dont know if it is only with me or if it is a general bug, migth worth checking.

Kind regads
George

Gary

unread,
Jan 8, 2016, 11:38:09 AM1/8/16
to VoiceAttack
Hi, George.

I put an update out just now (v1.5.8.14) that should address your issue.  I had some left-over code that I was trying out that I neglected to remove.  

Sorry about that!

Gary

cmdr.deepwell

unread,
Jan 8, 2016, 1:36:54 PM1/8/16
to VoiceAttack
Thank you for the swift action !
Great job as always :)

regards
George

cobo...@gmail.com

unread,
Jan 9, 2016, 12:41:06 PM1/9/16
to VoiceAttack
HA thank you Gary,that solved my same issue on arrowkeys  .

Hollywood_315

unread,
Jan 24, 2016, 4:02:26 AM1/24/16
to VoiceAttack
Hi Gary

I hope you are well. Just to inform you that in current beta 1.5.8.14 there seems to be an issue regarding execution of external programs.
I have tested this on Win7 and Win10 (running as admin), the error is consistent:
 
09:48:27 - Unable to launch file : [Object reference not set to an instance of an object.]

In 1.5.8. release version this execution of external programs works just fine. 
Hopefully this is something you can address before next version release.

Also much appreciated if you can consider this feature request on joystick press/release distinction for VAICOM:
Just a gentle reminder :-)

Cheers!



  

Hollywood_315

unread,
Jan 24, 2016, 4:22:49 AM1/24/16
to VoiceAttack
On my previous post: the mentioned issue seems to be related to the Window Style 'hidden' option.
Grtz

Gary

unread,
Jan 24, 2016, 9:28:20 PM1/24/16
to VoiceAttack
Hi, Hollywood.

Are there any other parameters that you are using (STDOUT or Exit Code)?  I'm trying feature all different ways and I'm not able to make it break on me.

Gary

Hollywood_315

unread,
Jan 25, 2016, 9:18:12 AM1/25/16
to VoiceAttack
Hey Gary

Thanks for getting back, I've done some additional testing with different profiles. 

The test profiles were made in 1.5.8, and imported in 1.5.8.14
These all generate this error when running an external application:

14:49:34 - Unable to launch file : [Object reference not set to an instance of an object.]

The commands where I have defined the application run look like this:
I have all fields in run an application settings window blank except 'hidden' check box and ' Allow other programs.. ' check box
I'm using a token in the path, i.e. {VA_APPS}\VAICOM\Tools\VAICOM_fetch_data.cmd

Exporting a profile from 1.5.8.14 and then re-importing does not fix the problem.
What does fix the problem as a workaround is this: 

I go into the imported 1.5.8 profile, go into the run an application settings window, make NO changes there, but simply exit with OK. 
After that when I run the command I get very nicely this:

14:47:45 - 'C:\Program Files (x86)\VoiceAttack\Apps\VAICOM\Tools\VAICOM_fetch_data.cmd' completed

..as was the intention. So it seems that just going into this edit window somehow fixes it. 

I hope this helps! Let me know if you more info.

Grtz Hollywood

Gary

unread,
Jan 26, 2016, 11:42:47 PM1/26/16
to VoiceAttack
I've been trying what you have suggested for the last hour or so, running through debug.  For the life of me, I am not able to make mine produce that error in either version.

I do need to ask what the, 'Allow other programs..' check box is.  Just assuming it's the, 'wait until exit', since there's nothing else in there for v1.5.8.

Gary

Hollywood_315

unread,
Jan 27, 2016, 2:06:07 AM1/27/16
to VoiceAttack
Hey Gary

You you are right of course, it's 'wait until exit' checkbox, typo from my side,
not enough coffee :)

It's interesting as I can reproduce it very consistently. It seems to be about 
version differences, since the imported profiles were created in previous 
version i.e. 1.5.8. 

My theory - and this is just me thinking out loud here- is that it relates to new
features (STDOUT etc.) that you have added in 1.5.14 to the execute program command.  
Could it be that when importing an older profile, some new variable does not get 
declared /populated? This could explain why the 'OK' action works, as that will 
update all the parameter values in the edit window. 

Let me know if I should direct you to a profile that I tested with.

Gary

unread,
Jan 28, 2016, 6:02:02 PM1/28/16
to VoiceAttack
What's weird is there's only one object in play.  Could you send me your profile over at sup...@voiceattack.com (exported from 1.5.8 if you can).  I'll test in both.  Also, although probably not affecting anything, what is in your batch (cmd) file?  If it has a bunch of stuff in it, could you send it, too?

Gary

Hollywood_315

unread,
Jan 29, 2016, 3:21:54 AM1/29/16
to VoiceAttack
Thanks Gary - message sent!

Hollywood_315

unread,
Apr 2, 2016, 1:42:17 AM4/2/16
to VoiceAttack
I checked quickly the other day and it seems this snag has been fixed.
Many thanks! I'll test some to make sure, but for now all looks well. 
Grtz Hollywood

On Friday, January 29, 2016 at 9:21:54 AM UTC+1, Hollywood_315 wrote:
Thanks Gary - message sent!

Hollywood_315

unread,
Apr 11, 2016, 8:23:14 AM4/11/16
to VoiceAttack
Many thanks for the new joystick features. 
Can you please please please add this for joystick buttons also: 'shortcut is invoked only when all keys are released'.

It would make my life much easier, I'm spending so much time now helping users out that have to setup complicated 
Autohotkey scripts as an alternative to get this working for VAICOM with DCS.

Appreciated!

Gary

unread,
May 1, 2016, 2:00:05 AM5/1/16
to VoiceAttack
This is now in the beta, just released.  Hope that helps!

Gary

Hollywood_315

unread,
May 1, 2016, 4:05:45 AM5/1/16
to VoiceAttack
That's fantastic!! Really great stuff mate - all drinks are on me! Cheers :-))

Martin Nielsen

unread,
May 2, 2016, 1:09:04 PM5/2/16
to VoiceAttack
With all the changes in relation to joysticks and mouse, is there also something on the way to make voiceattack press a joystick button? move analog axis and such, similar to the plugin that was for vjoy? which currently is non functional? (unless its been updated since last I checked)

Gary

unread,
May 6, 2016, 12:02:19 AM5/6/16
to VoiceAttack
The last time I tried vJoy (after their last update) it was working fine for me.  I've got it on the board to update the plugin to add the additional functionality that they've included.

Gary
Reply all
Reply to author
Forward
0 new messages