[audacity4blind] JAWS Script for Audacity 2.0RC, Guinea Pigs Wanted

  • From: "Gary Campbell" <campg2003@xxxxxxxxx>
  • To: <audacity4blind@xxxxxxxxxxxxx>
  • Date: Thu, 24 Jan 2013 15:01:43 -0700

Hello,

 

Dang Manh Cuong and I have made many changes to the Audacity scripts for
JAWS.  Now, we need your feedback.  Although we think this version is quite
stable, we are releasing it as a beta/release candidate.  You should be
aware that this version, particularly the installer, has not been tested
with many different system configurations.  I develop with JAWS 10.0 on a
desktop 2.8GHz Pentium D machine with  1.49GB RAM running Windows XP SP3,
and Cuong uses JAWS 13 on a laptop running Windows 7.  

 

I have not used Audacity for much other than testing the script, which is
not a good way of thoroughly testing a piece of software!  I think Cuong has
used Audacity more than I have, but still different people do things
differently which may uncover defects.  Also, an installer is a tricky piece
of software.

 

One of my concerns is that we have added a lot of messages to assist
beginning users that may get in the way of experienced users.  I would like
to know if experienced users find particular messages annoying.  I would
also like to hear from beginning users who find messages not helpful.  

 

The code that detects the program state (playing, stopped, paused, or
recording) uses MSAA to get the pressed state of toolbar buttons.  We had a
lot of problems with this feature on Cuong's laptop.  We think it's fixed,
but if you find that messages are being spoken when Audacity is playing that
you think should only speak when stopped, try pressing JAWSKey+numpadDEL and
verify that the correct status is spoken.  If you do find a problem with
this, please send us your machine configuration and symptoms and I may send
you a debug version of the script to test if you would be willing to help.

 

Please download the new installer from
https://dl.dropbox.com/u/47990492/Jaws%20Script%20for%20Audacity.exe.  

 

To install: 

Place the installer in a folder on your machine.

Run it to install the files.  It also allows you to choose which JAWS
versions to install into and whether to install for the current user or all
users.  If you choose the full install type, you will be able to remove it
via Add or Remove Programs, and it will make a folder in your Program Files
folder to store the uninstaller.  If you choose the Just Scripts install
type, it will not be removable from Add or Remove Programs, and it will not
create a folder in your Program Files folder or any registry entries.  

If you choose the Just Scripts install type, the README and What's New files
will be installed in the JAWS scripts folder for each version, and What's
new.txt will be called audacity_whatsnew.txt.  

The installer will compile the script package in each JAWS version.

If you want to modify the installer, or are just curious how it works, you
can install the installer source by selecting the Custom install type and
choosing the Install Installer source component.

 

If the installer detects a full install of the scripts, it offers to
uninstall it.  If it detects script files for Audacity, it warns that it
will overwrite them.

 

Try it out and let us know what you think.

 

Gary Campbell campg2003@xxxxxxxxx and

Dang Manh Cuong <dangmanhcuong@xxxxxxxxx>

 

P.S.: As I am about to send this message I see that there is a new version
of Audacity!  Obviously, I haven't tested the scripts with it :-).

 

Below is the description of the changes since version 1.2 of the scripts.  

 

. 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.  

 

Other related posts: