FM-1 Screen Reader
Web page and shared firmware code that make a connected FM-1 speak what its screen shows, using a built-in voice or the computer's screen reader.

- License notes
- The eSpeak NG voice in web/espeak/ and the worker that runs it (web/tts_worker.js) are GPL-3.0-or-later; a page that uses the voice carries both licenses.
- Source
- github.com https://github.com/charlesvestal/fm1-reader
- Homepage
- charlesvestal.github.io https://charlesvestal.github.io/fm1-reader/
- accessibility
- sdk
- midi
Description
A supporting firmware sends its screen text over USB MIDI SysEx together with a link to a words file published on its own site. The page in Chrome or Edge turns that into speech with eSpeak NG compiled to WebAssembly, or passes the text to VoiceOver, NVDA, JAWS or TalkBack. The repository holds the shared C code that firmware authors copy in, the protocol description, an audit script for the wording, a terminal reader, and a Claude Code skill for adding support to a firmware. Supported firmwares listed in the README are X0X, FoMni-1, AMB-1, Polly, MONK-1, Mocky and CTL-1.
Install notes
Nothing is installed on the FM-1 by the page itself. Connect the FM-1 over USB, open the page in Chrome or Edge and click Connect. It only reads firmwares that include the shared announce code.
Version history
| Version | Date | Notes |
|---|---|---|
| main @ 2f49d91 | 2026-10-15 | No tagged releases; this is the latest commit. |