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.