README from GitHub, GPL-3.0
Outrigger
Outrigger lets a USB MIDI controller play an M-VAVE FM-1 with no computer, and switches the FM-1's firmware for you, backing it up first. It runs on a small ESP32-S3 touchscreen board that sits on a powered USB hub next to the FM-1: your controller and the FM-1 on the hub, Outrigger on the hub's upstream port, one power supply for all of it.
Install
outrigger.music installs it from Chrome or Edge over USB. No toolchain, no downloads to manage.
Status
Beta. Expect rough edges. Firmware switching writes to your FM-1, so read the beta guide first, including what to do if your FM-1 won't boot and the known issues.
Boards: tested on the Waveshare ESP32-S3-Touch-LCD-1.69 and ESP32-S3-Touch-LCD-3.5, with a Novation Launchkey Mini MK4 37. What else should work, and how to add a board: docs/boards.md.
Feedback: feedback@outrigger.music, or open an issue.
Docs
- Beta guide: what you need, installing, switching firmware, backups, recovery.
- All the docs, grouped for players, board builders and firmware authors.
- Contributing: building, testing, and how changes land and ship.
Built on and alongside
The FM-1 has a lively community, and these are projects we use, learn from or sit next to.
- Felucca and felucca-bsp (Hügelton Instruments): a custom FM-1 firmware, and the board support package for JieLi-based M-VAVE synths.
- fm1-base, X0X, AMB-1 and more FM-1 firmwares (Charles Vestal): a firmware base and template, a groovebox, a generative ambient machine, and others.
- MvaveFM1Unbricker and RemoteFM1 (Quixotic7): an FM-1 unbricker, and a player that runs FM-1 firmwares from the browser without installing them.
- fm1-mirror (Patrick Kellogg): the FM-1's screen, big, on a computer.
- fm1buddy (David Konsumer), a related project: a touchscreen box that runs an FM-1 without a computer.
License
GPL-3.0, the license of M-VAVE's fm1_open, Felucca, Skiff and SLOOP. NOTICE lists the
third-party code inside. No M-VAVE firmware is in this repo; your browser downloads it at install time and checks
each file.