LUOGU
Peking opera percussion (锣鼓经) and 京胡 accompaniment for the M-VAVE FM-1: an fm1-base firmware
- Custom firmware
- Stable
- Medium brick risk
- Reversible
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
LUOGU 1.0.1: a fix to 1.0. On the 唱腔 page, a note played on the keys as a 京胡 (or 京二胡, 月琴), shown as "京胡 3", was drawn over the 过门's 简谱 whenever the page was stopped. It is now at the top right of the title strip, above the 板式's name, where nothing else is. Everything else is as in 1.0.
Install: download luogu-1.0.1.fwsc below, connect the FM-1 by USB, and run
python3 base/tools/fm1_install.py luogu-1.0.1.fwsc in a clone of this repository
(git clone --recursive https://github.com/Reytian/fm1-luogu; the installer needs mido with python-rtmidi).
M-VAVE's own firmware can be put back the same way. Installing is at your own risk.
| File | What |
|---|---|
luogu-1.0.1.fwsc | The firmware (identity FM-1_53010001; sha256 4e7d9262e55b57fab36b0660770952528b9333f62971fcc7e9c5bd3aedb81199) |
Licences: LUOGU is MPL-2.0. The 唱段 are the Jingju Music Scores Collection's scores (Rafael Caro Repetto and Xavier Serra, 2017), under CC BY-NC-ND 4.0: this firmware may be shared, but not sold or used commercially. The 彩蛋's two sung words are from a recording of 郭德纲 and 于谦's 相声 《黄鹤楼》 (德云社); they belong to their owners and are not under LUOGU's licence. Details: CREDITS.md.
LUOGU 1.0.1:修正一处显示问题。 在唱腔页用键盘拉京胡(或京二胡、月琴)时,弹的音(比如“京胡 3”)原来在停着时会压住 过门的简谱,现在挪到了屏幕右上角、板式名的上方。其他和 1.0 一样。
安装:下载下面的 luogu-1.0.1.fwsc,USB 连上 FM-1,在本仓库的克隆里运行
python3 base/tools/fm1_install.py luogu-1.0.1.fwsc(要先装 mido 和 python-rtmidi)。原厂固件也能用同样的方法刷回去,
风险自负。唱段按 CC BY-NC-ND 4.0 只限非商业使用;彩蛋里的两句唱出自郭德纲、于谦的相声《黄鹤楼》(德云社)录音,
版权归原所有者。
Before you start
- How hard is it?
- HardUses the command line or developer tools.
- What you need
- A USB or MIDI cable
- Comfort with the command line
- A computer
- Can it break my device?
- Small chance of trouble, with a way to recover.
- Can I undo it?
- Yes. You can go back to the official software.
Did it work for you?
Did LUOGU v1.0.1 work on your M-VAVE FM-1?
No reports yet for v1.0.1.
One-tap reports from owners. Bricked reports are checked before they count.
Compatibility
Devices: M-VAVE FM-1.
No compatibility information yet.
Getting started
From the project's README ("Build and test"):
LUOGU is an fm1-base firmware: fm1-base is a git submodule in base/.
git clone --recursive https://github.com/Reytian/fm1-luogu ./build.sh # app/build/luogu.fwsc (the JieLi toolchain; in Docker on macOS) ./build.sh --host # the host simulator: app/build/host/luoguhost tests/runtests.sh # every test (needs only a C compiler and Python with Pillow)The build needs a Python 3 with Pillow (PYTHON=... picks one), the JieLi toolchain and JieLi's AC79 SDK. For details, see fm1-base's README. To install a build: python3 base/tools/fm1install.py app/build/luogu.fwsc. To install the release, download luogu-1.0.1.fwsc from Releases and run python3 base/tools/fm1install.py luogu-1.0.1.fwsc in a clone (the installer needs mido with python-rtmidi). Installing is at your own risk; M-VAVE's own firmware can be put back the same way.
Path What app/app.c, app/app.h The screens, the controls, the settings app/zh.c, app/dsp/zhfont.h The Chinese text: bitmap fonts of the characters the screens use (written by tools/zhfont.py) app/dsp/lg.c, lg.h The engine: the transport, the 板式's flow, the 过门's notes and ornaments, the practice's judging, the mix app/dsp/perc.c, perctab.h The percussion: recorded strokes played as voices; the 大锣's modes with their sinking glide, noise bands, the contact (the tables written by tools/percfit.py) …
Risk and recovery
- Brick risk
- Medium
- Reversible
- Yes
- Requires opening the device
- No
From the project's README ("Build and test"):
LUOGU is an fm1-base firmware: fm1-base is a git submodule in base/.
git clone --recursive https://github.com/Reytian/fm1-luogu ./build.sh # app/build/luogu.fwsc (the JieLi toolchain; in Docker on macOS) ./build.sh --host # the host simulator: app/build/host/luoguhost tests/runtests.sh # every test (needs only a C compiler and Python with Pillow)The build needs a Python 3 with Pillow (PYTHON=... picks one), the JieLi toolchain and JieLi's AC79 SDK. For details, see fm1-base's README. To install a build: python3 base/tools/fm1install.py app/build/luogu.fwsc. To install the release, download luogu-1.0.1.fwsc from Releases and run python3 base/tools/fm1install.py luogu-1.0.1.fwsc in a clone (the installer needs mido with python-rtmidi). Installing is at your own risk; M-VAVE's own firmware can be put back the same way.
Path What app/app.c, app/app.h The screens, the controls, the settings app/zh.c, app/dsp/zhfont.h The Chinese text: bitmap fonts of the characters the screens use (written by tools/zhfont.py) app/dsp/lg.c, lg.h The engine: the transport, the 板式's flow, the 过门's notes and ornaments, the practice's judging, the mix app/dsp/perc.c, perctab.h The percussion: recorded strokes played as voices; the 大锣's modes with their sinking glide, noise bands, the contact (the tables written by tools/percfit.py) …
Releases
| Version | Name | Released |
|---|---|---|
| v1.0.1 | LUOGU 1.0.1Latest | 23 October 2026 |
| v1.0 | LUOGU 1.0 | 22 October 2026 |
| v0.1 | LUOGU 0.1 | 22 October 2026 |
Credits, license and support
- License
- MPL-2.0