• Author: Neil Soiffer
  • Download stable version
  • NVDA compatibility: 2018.1 or later (untested in earlier versions)

MathCAT is designed to eventually replace MathPlayer because MathPlayer is no longer supported. MathCAT generates speech and braille from MathML. The speech for math produced by MathCAT is enhanced with prosody so that it sounds more natural. The speech can be navigated in three modes using the same commands as MathPlayer. In addition, the navigation node is indicated on a braille display. Both Nemeth and UEB technical are supported.

MathCAT adds a settings menu to NVDA's preferences menu. In the settings menu, numerous options in MathCAT can be set to control the speech, navigation, and braille.

For full user documentation, please see the MathCAT User Documentation. For information on the MathCAT project in general, see the main MathCAT Documentation page.

Who should use MathCAT:

  • Those who need high quality Nemeth braille (MathPlayer's Nemeth is based on liblouis' Nemeth generation which has a number of significant bugs that are technically difficult to fix).
  • Those who need UEB technical braille
  • Those who want to try out the latest technology and are willing to help by reporting bugs
  • Those who use Eloquence as a voice

Who should NOT use MathCAT:

  • Anyone who uses MathPlayer with a non-English language (translations will be coming in the future)
  • Anyone who uses MathPlayer with a non-Nemeth/non-UEB braille output (contact me if you want to help out with a braille translation)
  • Anyone who uses MathPlayer to read Chemical Formulas (that will hopefully show up in the next non-bug release)
  • Anyone who prefers Access8Math to MathPlayer (for speech or other features)

MathCAT's rules for speech are not yet as extensive as MathPlayer's rules -- that may be another reason to stick with MathPlayer. MathCAT is being used as a testbed for ideas for MathML 4 that allow authors to express their intent so that ambiguous notations can be spoken correctly and not guessed at. I have held off on adding too many rules since the architecture of MathCAT is centered around using and inferring author intent and these are not fully settled yet.