Device manager
Chrome or Edge on a computer: Web MIDI with SysEx. The FM-1 over USB, as "ChoralRoot FM-1".
Library
Your FM-1
Click selects; shift-click a range, cmd / ctrl-click adds one. Drag rows within a pool to reorder (onto another sound: they swap places; onto a factory preset: it takes that place), from the library onto the FM-1 to Place, from the FM-1 onto the library to Keep.
Device not found?
Check the USB cable (a data cable, directly on the computer, not through a hub), close other apps that use MIDI (the editor, a DAW holding the port), switch the FM-1 on: the page connects by itself when the port "ChoralRoot FM-1" appears. The FM-1 must run ChoralRoot (the installer puts it on).
Auditioning: selecting a row loads it on the unit (SysEx SELECT: the engine and the position); after a Place, Rename, Swap or Delete the row at that place is loaded again, so a change is heard at once. A firmware without SELECT gets a program change instead, which plays the row only when the unit is already on its engine. Writes stop the sound for about 45 ms per object; a write while a loop plays is refused: stop the loop on the FM-1 first.
Try the page without a device: ?sim=1 (a simulated FM-1; the keyboard shows what it would send).