[audacity4blind] JAWS Script for Audacity 2.2.1 released

  • From: Gary Campbell <campg2003@xxxxxxxxx>
  • To: audacity4blind@xxxxxxxxxxxxx
  • Date: Mon, 4 Jun 2018 12:39:43 -0600

Dang Manh Cuong and I are pleased to announce the release of v2.2.1 of the JAWS script for Audacity.(2.2.0 should have been a RC-- it turns out that the Spanish translation wasn't updated!)

You can download the installer from https://www.github.com/campg2j003/JAWS-Script-for-Audacity/releases/download/rel2.2.1/Jaws-Script-for-Audacity_2_2_1.exe. These are links to the README <https://github.com/campg2j003/JAWS-Script-for-Audacity>, and the What's New file <https://github.com/campg2j003/JAWS-Script-for-Audacity/blob/master/What%27snew.md> which is included below. Please let us know of any suggestions.

We greatly appreciate the efforts of those of you who helped us with testing, reported problems, made suggestions, and expressed interest in the project!


 Changes

Here are the changes since v2.2.0-RC.2:

 * The installer now does not uninstall an existing installation for a
   Just Script install.
 * For a Just Script install the View Log File checkbox on the Finish
   page is disabled.
 * The installer displays the README of the selected installer language.
 * The installer now checks for script file extensions explicitly when
   it checks for existing script files in the script folder. Previously
   it just checked for audacity.*.

Below is a summary of the changes between version 2.1.0 and 2.2.1 of the script.


 New in 2.2.1


   Installer

 * Updated the installer to use Unicode. This package now requires NSIS
   3.0 or later. All language message files should be in UTF-8 encoding.
 * The installer now compiles scripts correctly for all languages
   during the install via the JAWSUtil.vbs script. To use scompile
   directly without JAWSUtil.vbs, on the installer command line include
   |/compile=s'.|/compile=n' will suppress compilation of scripts.
 * The installer offers to display the installer log on exit.
 * The installer displays the README of the selected installer language.
 * The installer no longer uninstalls an existing installation for a
   Just Script install type.


   Changes to the Scripts

 * Zoom command keystrokes now speak the last number on the timeline
   indicating the maximum time shown in the window.
 * Sliders in Equalization dialog now speak DB values.
 * Added ability to preview audio with cursor motion keys. This is
   controlled by the Preview Motion Quick Setting.
 * Added Quick Setting for controlling announcement of selection
   positions when arrow keys are pressed. On functions as before. Off
   silences position messages for arrow keys.
 * Position announcement is no longer controlled by Anounce Audacity
   Messages.
 * Copy and CutToClipboard now test for no project before track selected.
 * JAWSDelete and JAWSBackspace now behave specially in the track panel
   only, instead of the main window.
 * Added script ToggleMotionPreview assigned to JAWSKey+p. This
   temporarily toggles motion preview on and off and Say Position
   between All but Arrows and All.
 * In the start/end selection fields Shift+Up/DownArrow preview audio
   at the selection end points.
 * Numpad left/right arrow keys with JAWSKey now preview in the track
   panel and selection bar. In the track panel and selection bar,
   scripts SayPrior/NextWord play the preview after the start/before
   the end position (inside the selection range). Scripts
   SelectPrior/NextWord preview before the start/after the end position
   (outside the selection).

Note: The motion previewing capability requires that Audacity is set to the Full shortcut key binding.

 * Added ability to find the tempo of a portion of audio. See Script
   Key Help for details. There is also a commented out implementation
   based on Robert Hänggi's NVDA add-on which uses arrays and therefore
   requires JAWS 11 update 1 or later.
 * SaySelectedText (JAWSKey+Shift+DownArrow) now says the track numbers
   of the selected tracks when focus is in the main window. When
   pressed twice quickly track names are spoken instead of track numbers.
 * In the track panel UpCell and DownCell (Alt+Control+Up/DownArrow)
   move to the prior/next selected track.
 * Added Audacity layer key help.
 * Added Position Display key layer.
 * Added "Short" key layer for speaking Shift+F5-F8 and
   Shift+Control+F5 and F7 from the home row. Also supports cursor
   motion and selection keys.
 * Keys to move current track to marked track and exchange current
   track with marked track now remain in the Audacity key layer. This
   allows moving several consecutive tracks more easily.
 * Added JAWSKey+a&SPACE as an alias for JAWS+a&k (mark current track).
 * JAWSHome and JAWSEnd now perform their normal function in the Track
   panel if the JAWS cursor is active.
 * Converted code that speaks position fields to work with Audacity
   2.2.0. -If we can't get the position field via GetWindowText we try
   to get it with MSAA. This doesn't get the letters and period, but it
   does get something when we used to get an error.
 * Silence Effect Preview now works most of the time in Audacity 2.2.0.
 * Reimplemented speaking of level meters. The code no longer uses
   control IDs and will now work when multiple project windows are open.
 * Updated Vietnamese README. Changed from .txt to .html.
 * Updated Spanish translation.
 * Added German translation.
 * Removed usePoFile script compiler pragma.


 New in 2.1.0

 * The package has a new home. It is now hosted at
   https://github.com/campg2j003/JAWS-Script-for-Audacity. The source
   is now available there. GitHub has an issue tracker which you can
   use to submit bug reports, enhancement requests, or other
   suggestions. It is accessed from the Issues link on the repository
   page. The file CONTRIBUTING.md has been added that contains
   information for script developers on working with the scripts on
   GitHub. This file only appears in the Git repository.
 * Now supports Audacity V2.1.3.
 * Multiple language support is now provided for the installer and
   script. English and Spanish are currently supported.
 * The README is now HTML. (The source is Markdown and is converted to
   HTML in the build process.) Therefore, it is now displayed in your
   default web browser instead of in Notepad.
 * Added additional usage information to the README.


   Changes to the Scripts

 * Added Spanish translation.
 * Added support for the QuickSettings dialog (JAWS 13 and later).
 * Made messages for moving and selecting more consistent.
 * More Audacity keystrokes announce their names.
 * Many more keys now check for stopped and/or a selected track.
 * SayLine, SayPriorLine, and SayNextLine now report no project if
   there are no tracks in the project and the PC cursor is active.
   (issue #1)
 * Some additional motion and selection commands now speak position
   information. These include moving to end of all audio, moving to
   start/end of selected tracks, and Select to Beginning/End of
   Selected tracks.
 * SayLine now says track number and number of tracks in the track panel.
 * Added the ability to go to a track by number. Entering a number
   causes focus to move to that track. Preceding the number with a plus
   sign moves down (to higher track numbers) that many tracks. A minus
   sign moves up that many tracks. When the operation is complete the
   name of the target track is spoken. This is assigned to JAWSKey+a
   followed by g.
 * Added the ability to move the current track to a track position by
   number, similar to the Go To track feature. For this to work,
   Control+Shift+UpArrow must be assigned to the Move Focused Track Up
   and Control+Shift+DownArrow must be assigned to the Move Focused
   Track Down Audacity commands.
 * Added scripts for Move Focused Track Up/Down. They speak the track
   that the track being moved passed over. They are currently assigned
   to Control+Shift+Up/DownArrow. For these to work, these keys must be
   assigned to the Move Focused Track Up and Move Focused Track Down
   Audacity commands. These will not work in Audacity versions prior to
   2.1.1.
 * Added scripts MarkTrack (JAWSKey+a,k), GoToMarkedTrack
   (JAWSKey+a,Shift+g), ExchangeWithMark (JAWSKey+a,x), and
   MoveCurrentTrackToMark (JAWSKey+a,Shift+m). The "mark" remembers the
   number of the current track. This mark is very simple-minded-- it
   will become confused if you add, delete, or move tracks. For
   MoveCurrentTrackToMark to work, Control+Shift+UpArrow must be
   assigned to the Move Focused Track Up and Control+Shift+DownArrow
   must be assigned to the Move Focused Track Down Audacity commands.
 * Improved label track support. Letter keys now speak while writing a
   label. Since we can't detect the track type, the feature is enabled
   when commands are executed that write a label. It is deactivated by
   commands that end the label (ENTER) or move out of the label track,
   and when focus moves out of the track panel. If you move into a
   label track with the arrow keys, the feature is not activated. It
   can be deactivated by moving to the toolbar or selection bar and
   back. When this feature is active while playing or recording ENTER
   terminates the label (and therefore exits label mode) rather than
   pausing. TAB and Shift+TAB now attempt to speak the active label
   while in the track pannel. They do this by searching for text with
   the background color white. This doesn't work all the time. I'm not
   sure if this is because the label isn't visible, or if the search
   completes before it has appeared. It works any time focus is in the
   track panel.
 * Added the ability to silence the speech that occurs when starting to
   record.
 * Added ability to silence the speech that occurs during the
   previewing of an effect (a lot of the time!).
 * In the track panel the keys Alt+UpArrow and Alt+DownArrow are now
   sent to the application. Previously they were not sent through
   because of a conflict with the OpenListBox and CloseListBox scripts.
 * JAWS MSAA info is refreshed after SelectAll and DeselectAll so JAWS
   now gives the correct selected information without doing a
   RefreshScreen.
 * Added code to refresh the track panel after CloseFocusTrack. This is
   intended to make JAWS not indicate that the old track is still current.
 * Fixed issue #4: In toolbars CTRL+TAB says "grabber".
 * The URL for the JAWS User's Guide can now be updated via the script
   (Control+Shift+j).
 * Updated guide link and Audacity keystrokes to 2.1.3.
 * The g key speaks the value of the recording meter. Pressing twice
   quickly moves focus to the meter. The h key does the same for the
   playback meter. If the combined meter toolbar is enabled, it is used
   instead of the individual meters.


   Installer Changes

 * The installer framework now supports installation of scripts in
   multiple languages. It now treats version/language pairs as it
   previously treated versions, so the version selection list view now
   shows entries like 16.0/enu. The installer messages are now also
   localizable. English and Spanish are currently supported.
 * The installer can now install for all users or the current user.
   Therefore, it is possible to install the scripts without admin
   priveleges. (For all user installs the uninstaller and supporting
   files are stored in %programfiles% as before. For current user
   installs they are placed in %localappdata%.) If the user has higher
   than standard user privileges a command line option allows forcing
   installation for the current user.
 * The radio buttons on the Select Versions/Languages page control both
   where the scripts are installed and the folder where the uninstaller
   and other supporting files are placed. For current user installs the
   Install for current user or all users radio buttons on the
   Versions/Languages selection page do not appear.
 * The installer can now install into the shared scripts folder of JAWS
   17.0.
 * Fixed a bug in the uninstaller that caused files to not be
   uninstalled if the user chose to delete files that were modified
   since installation.
 * Fixed a bug in the uninstaller that allowed uninst.exe and
   install.ini not to be removed in some cases.
 * The uninstaller now asks to delete the first file modified since
   installation and then processes all of them acording to the user's
   response.
 * The check for existing scripts now ignores .jcf file so saved
   settings do not trigger the warning.
 * The check for an existing installation has been moved to after the
   Versions/Languages selection screen. This allows the current/all
   users choice before checking for an existing installation.
 * The installer log now includes messages generated by code for
   installer pages. This allows installation settings to be logged.
 * The installer log now includes the log of the uninstall when it
   finds an existing install. To support this, the uninstaller now has
   a /logfile=filename command line option to dump the uninstaller log
   to a file.
 * The installer executable is now built with NSIS 2.51. (The files are
   still compatible with 2.46.)
 * Some parts of the installer have been broken out into separate
   packages so that they can be used in other projects. These are
   jfw_nsh and uninstlog.
 * The jfw_nsh README is now installed with the installer source when
   installing the installer source is requested.


 New in V2.0 (9/15/2013):

 * The URL for the JAWS User's Guide is now read from the config file.
   It can't be edited from within the script, but it can be updated
   with a text editor.
 * Version 2.0.4 of Audacity assigns keys Control+[ and Control+] to Go
   to Start/End of Selection. Therefore, we have changed the keys for
   reading the selection start and end positions to ALT+[ and ALT+].
 * While playing/recording when ENTER pauses, Control+ENTER sends ENTER.
 * Added Vietnamese README file (translation by Nguyen Hoang Giang).
 * Added an Insert+ key assignment for each JAWSKey key. This makes the
   script easier to use on laptops.
 * Changed script AudacityHotkeyHelp to AudacityScriptKeyHelp. This
   name more clearly represents what it does, and it removes a bogus
   additional entry in Keyboard Manager that was the result of a case
   mismatch.
 * For Audacity V2.0.3 or later the special processing for the Import
   Uncompressed Audio Files warning dialog, the special processing is
   not used since the interface has been fixed.
 * For slider controls in diaalogs that have associated edit boxes, the
   value of the edit control is now spoken when the slider changes
   while focus is on the slider. These sliders are now named with the
   name of the edit control, and some of the extra chatter that
   occurred when these sliders gain focus has been eliminated.
 * Paste now works in Audacity dialogs.
 * The link to the Audacity JAWS guide in Audacity hotkey help is now
   an active link that opens the web page in the default browser. The
   URL is read from the JSI file.
 * Changed script Enter to perform the default enter script in the user
   buffer. This causes links to be run by the ENTER key.
 * Changed so that Audacity hotkey help does not display a link to
   default JAWS hotkey help.
 * Added JAWS option EnterPause to control whether ENTER pauses during
   play/record.
 * If the installer cannot read the location of the JAWS program folder
   from the registry it now supplies a default. If it cannot find a
   folder at %programfiles%\Freedom Scientific\JAWS it looks for one in
   %programfiles64% (actually the value of the NSIS variable
   $programfiles64), and uses that as the fallback.
 * In jfw.nsh added documentation for JAWSALLOWALLUSERS.
 * In jfw.nsh added documentation that if JAWSALLOWALLUSERS is
   undefined and the installer changes the shell context, it must also
   change the value of JAWSSHELLCONTEXT acordingly.
 * In jfw.nsh if JAWSALLOWALLUSERS is undefined, on the install
   confirmation page, the message indicating whether installing to the
   current or all users read "for in". Changed PageInstConfirmPre to
   not test JAWSALLOWALLUSERS. Since JAWSSHELLCONTEXT defaults to
   "current", "the current user" is written if JAWSALLOWALLUSERS is
   undefined.
 * In jfw.nsh commented out debug message indicating that only 1 JAWS
   version is installed and the JAWS versions page is being skipped.


 New in JAWS scripts for Audacity version 2.0RC (1/22/2013):

 * Adjust JAWS Options (JAWSKey+v) now contains a section for Audacity
   options. It currently contains two options: Announce Messages, which
   duplicates the CTRL+` key, and Announce Toolbars, which controls the
   announcement of the toolbar name when focus moves from one toolbar
   to another. There is support for the older AdjustJawsVerbosity
   script, but it has not been tested.
 * Added JAWSKey+v to the jkm file so that options will appear on JAWS
   13, which has a new options facility.
 * Fixed speaking of position fields. Previously, .012s was spoken as
   12s. Now speaks time fields containing two zeros as one 0, so
   01h00m00.015s is spoken as 1h0m0.015s. This is not yet done for
   formats such as ##h##m##s+##frames. The "days" format is now
   supported. The code for this function has been rewritten to use more
   message constants, so it hopefully will be localizable.
 * The extension of the Audacity script settings file has changed from
   .Ini to .jsi to conform to the JAWS scripting convention. You can
   rename your existing audacity.Ini file to audacity.jsi and it should
   work.
 * In the settings file changed key announce to announceMessage. Script
   ResetConfig now deletes the old (announce) key if it exists.
 * JAWS no longer says "track table" when moving between tracks.
 * JAWS speaks main window areas: Toolbars, Track Panel, and Selection
   Bar, as focus moves between them.
 * JAWS speaks the toolbar name when focus moves from one toolbar to
   another.
 * When focus is in the toolbars pressing CTRL+TAB and Shift+CTRL+TAB
   move to the first control on the next toolbar and the last control
   on the previous toolbar, respectively.
 * JAWSKey+Delete speaks the current program state: stop, play, play
   pause, record, or record pause.
 * left/right arrow keys Speak cursor position when Audacity is stopped.
 * Keystrokes that extend or contract the selection speak the new
   position when Focus is in the track panel.
 * Functions that use values from the selection bar now speak a message
   or silently omit the action requiring the value if the selection bar
   is not enabled.
 * Track gain and pan controls now only function when the PC cursor is
   active. Otherwise they execute their default mouse movement functions.
 * HandleCustomWindows now calls HandleCustomWindows so that this
   function in scripts "use"d by this script will be executed.
 * In many VST plug-ins, keystrokes move focus to the Presets control
   and activate Save/Load Presets. Hotkey help is available for these
   keys in these dialogs.
 * In many plug-in dialogs control names and values are now spoken. Use
   JAWSKey+TAB to repeat the current control name/value.
 * Added script SayJump and key assignments that bind it to comma,
   period, Shift+comma, and Shift+period.
 * Added SelectAll announcement.
 * JAWS now indicates when no project is open (no tracks in track
   panel) for many operations.
 * JAWS now speaks an alert message when performing an operation which
   requires that the current track be selected but it is not. Added
   this funtionality to the folowing scripts: JAWSDelete,
   DeleteSelectedAudio, MoveToStartOfSelectedTracks, SelectToBeginning,
   SelectToEnd, copy, and cut.
 * Scripts CloseFocusTrack, DeleteSelectedAudio, JAWSHome, JAWSEnd,
   Copy, and Cut speak an error message indicating that they are not
   valid when Audacity is not stopped.
 * The CTRL+JAWSKey+v keystroke now performs its default function, and
   then speaks the current Audacity script version. When pressed twice
   quickly, it displays this information in the virtual viewer.
 * The following now pass keys to the app when in a dialog or menu:
   scripts MoveToStartOfSelectedTracks, MoveToEndOfSelectedTracks,
   SelectToBeginning, SelectToEnd, SaySelectionStart, SaySelectionEnd,
   SayAudacityState, DeleteSelectedAudio, JAWSDelete, and Copy, and
   Functions SaySelectionPosition, and SayNoTrackSelected.
 * Changed the conditions for not executing the default script in
   Start/FinishMarkerLeft/Right and made them perform their default
   scripts instead of silently sending their keys through.
 * [ and ] can now be used in file name dialogs.
 * Function AnnounceMessage now returns in open dialogs.
 * JAWS now correctly speaks controls in the warning dialog shown when
   importing uncompressed Audio files. This is done by new function
   IsWarningDialog and changes to function HandleCustomWindows and
   script SayLine. Removed old implementation in script
   AudacitySayFrame because it works on Cuong's PC only.
 * In the Edit Chains dialog F6 toggles between the Chains and Chain
   list views. If the focus is not on the Chains list view, the key
   moves focus to the Chains list view.
 * In SayLine added tests for IsPCCursor and not UserBufferIsActive.
 * When playing and recording, the ENTER key executes pause. (It sends
   ENTER when stopped and "p" when playing or recording.) I like this
   because the numpad ENTER key is easier to find than "p" if your
   hands are off the keyboard. Try it out and let us know if you like it.


 Issues:

 * We have had problems getting the state of Play, Pause, Record, and
   Stop on some configurations. In function GetAudacityState there is
   commented out code to determine the pressed state of toolbar buttons
   by testing the button graphic name. There are also CS_IMG constants
   for the pressed state of the Play, Pause, and Record buttons that
   must be uncommented as well. If the current code doesn't work for
   you, this might work. This code needs further work, so if you need
   this code please let us know.
 * The position fields sometimes are not shortened. This happens
   because the JAWS GetWindowText function returns just the numbers
   with no h, m, :, etc. We do not know what causes this. I have been
   able to correct this by shutting down and restarting Audacity-- or
   JAWS, I can't find my notes on this. This was observed with JAWS 10.
 * A side effect of ENTER pausing during record and play is that you
   can't select/unselect tracks while playing or recording. Also, if
   you redefine the numpad ENTER key and set JAWS to treat extended
   keys separately, both ENTER keys will be mapped to the typing keys
   ENTER. If you don't like this feature you can deactivate it by
   adding a semicolon on the lines for ENTER and NumPadEnter in
   audacity.jkm and removing semicolons on the lines containing //and
   // before and after script Enter in audacity.jss.
 * The script does not recognize when editing a label in a label track.
   Arrow keys continue to report the position and DEL/BACKSPACE report
   deleting audio. If entering a label while playing, ENTER will pause
   rather than completing the label. Does CTRL+m work while recording?


 New in Jaws scripts for Audacity version 1.1 (8/10/2012):

 * added alert message for the following default Audacity hotkeys:
 * Close (Delete) focused track (Shift + C)
 * Deselect all the tracks (and any time-range) (Ctrl + Shift + A)
 * Move to start of tracks (time zero) (Home)
 * Move to end of all audio (End)
 * Move to start or end of audio in selected tracks ( J or K)
 * Selection start at start of tracks (Shift + Home)
 * Selection end at end of all the audio Shift + End
 * Selection start or end at playback position ([ or ])
 * Move the end of the selection to the right by a small amount (Shift
   + Right Arrow)
 * Move the end of the selection to the left by a small amount (Ctrl +
   Shift + Left Arrow)
 * Move the start of the selection to the right by a small amount (Ctrl
   + Shift + Right Arrow)
 * Move the start of the selection to the left by a small amount (Shift
   + Left Arrow)
 * Delete selected audio (Delete, Ctrl+k, Backspace)
 * Cut, copy selected audio (Ctrl+x, Ctrl+c) You can toggle these
   alerts on or off by pressing Ctrl+`
 * Jaws now speaks the radio buttons in the warning dialog that appears
   when importing uncompressed audio files.
 * Added scripts for adjusting gain and pan. These scripts replace
   mouse movement scripts (MouseUp, MouseLeft, etc.), but you can use
   the original functions by activating theJaws cursor. This feature
   suggested by Gary Campbell, the original author of the script.
 * Added hotkey to toggle mute Jaws synthersiser (Insert+shift+s).
 * Added function autoStartEvent (just a little tip to indicate that
   the script is active).
 * Created dictionary file for some mispronounced words.
 * The Audacity hotkey help (JAWSkey+h) now displays hotkeys as links.
 * Created installer package (using Nullsoft scriptable install system).
 * Fixed error in installer (fix by Gary Campbell):
 * In DisplayJawsList now only counts JAWS version registry keys whose
   names start with a digit. This rejects keys like "Common".

This software was most recently developed with JAWS 2018 on a 64-bit laptop running Windows 10. Testing has primarily been done with Audacity 2.2.2.


Feedback/suggestions greatly appreciated!


Gary


Other related posts:

  • » [audacity4blind] JAWS Script for Audacity 2.2.1 released - Gary Campbell