Skip to content
altstrument

FM-1 Screen Reader

Tool for FM-1 (M-VAVE)

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.

by Charles Vestal

ActiveSource: openMIT
M-VAVE FM-1 FM synthesizer, top view
Photo: M-VAVE, manufacturer product image, via m-vave.com
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/

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

FM-1 Screen Reader version history
VersionDateNotes
main @ 2f49d912026-10-15No tagged releases; this is the latest commit.

Back to FM-1