Yanfei licensing

Yanfei is a modified version of Felucca. The fork source is https://github.com/izumoe/yanfei. The upstream notices and component licences below remain applicable.

Felucca is free software, licensed under the GNU General Public License, version 3 only (GPL-3.0-only, full text in LICENSE). That covers the code and its own assets. A few bundled or ported parts keep their own licences; they are listed below, and their licence texts are in LICENSES/.

Copyright (C) 2026 Leo Kuroshita (@kurogedelic), Hügelton Instruments

What is GPL-3.0-only

Every file in this tree that carries an SPDX-License-Identifier: GPL-3.0-only header:

Three source files are ports and keep the licence of their originals: firmware/src/phys_dsp.c (DaisySP, MIT), firmware/src/phys_symp.c (Rings, MIT) and firmware/src/fm6_core.c (msfa, Apache-2.0). The firmware built with them is GPL-3.0-only as a whole.

Five engines and the code they share are under the MIT licence, not the GPL. They are Hügelton Instruments' own work and live in their own repository, Felucca-Engines (https://github.com/hugelton/Felucca-Engines), included here as the git submodule firmware/engines/: the ANALOG, LOFI, TRIO, WHEEL and NOISE engines (eng_analog.c, eng_lofi.c, eng_trio.c, eng_wheel.c, eng_noise.c), the engine interface (felucca_engine.h), the shared DSP helpers (dsp.c) and the generator of their tables (SPDX-License-Identifier: MIT, firmware/engines/LICENSE, also LICENSES/MIT-Felucca-Engines.txt). The firmware built with them is GPL-3.0-only as a whole. Felucca's complete source includes that submodule: clone with --recurse-submodules, and give it along with the rest when you share the source. Each release also offers felucca-X.Y.Z-source.tar.gz, the whole source with the submodule's files in it (GitHub's own source archives leave the submodule empty).

You may use, study, change and share Felucca under the GPL. If you distribute Felucca, or firmware derived from it, you must also give your recipients its complete corresponding source under the same licence. That includes devices that ship with modified Felucca inside.

Hügelton Instruments' own work

All by Hügelton Instruments (Leo Kuroshita), in this tree:

What Licence Where
Felucca: firmware, tools, web pages, tests GPL-3.0-only LICENSE
The PHASE engine GPL-3.0-only firmware/src/eng_phase.c
The DRUM voices and kit GPL-3.0-only firmware/src/drum_voice.c, firmware/src/eng_drum.c
The Hügelton Sample Pack: Felucca's drum sounds, made by tools/gen_waves.py, from which the SLICE engine's BREAK is built; the script and the sounds it makes CC0 1.0 (https://creativecommons.org/publicdomain/zero/1.0/) tools/gen_waves.py
The controls picture GPL-3.0-only docs/controls.jpg
The Fukiai icon font (https://github.com/hugelton/Fukiai): the firmware's icons (rasterised at build time by tools/gen_aa_icons.py) and the web editor's MIT web/fukiai.ttf, LICENSES/MIT-Fukiai.txt, web/FUKIAI-LICENSE.txt
The ANALOG, LOFI, TRIO, WHEEL and NOISE engines, the engine interface and the shared DSP helpers: Felucca-Engines (https://github.com/hugelton/Felucca-Engines) MIT firmware/engines/, LICENSES/MIT-Felucca-Engines.txt

Third-party material

What Licence Where
Inter Tight font by The Inter Project Authors: the UI text, rasterised into the firmware at build time (tools/gen_aa_font.py; the generated tables are not offered as a font, and the font declares no Reserved Font Name) SIL OFL 1.1 assets/fonts/InterTight[wght].ttf, LICENSES/OFL-InterTight.txt (also assets/fonts/OFL.txt)
Instrument samples (Versilian Studios VSCO-2 Community Edition, VCSL): the SAMPLE sets, also the SLICE engine's PIANO (the PIANO set's middle C) CC0 1.0 assets/samples-cc0/, provenance in ATTRIBUTION.txt there
DaisySP by Electrosmith, Corp and Emilie Gillet (https://github.com/electro-smith/DaisySP): the PHYS engine's modal and string models and the resonator, ported to fixed point MIT firmware/src/phys_dsp.c, LICENSES/MIT-DaisySP.txt
Rings by Emilie Gillet (https://github.com/pichenettes/eurorack): the PHYS engine's sympathetic strings, ported to fixed point MIT firmware/src/phys_symp.c, LICENSES/MIT-Rings.txt
msfa by Google Inc. and Pascal Gauthier, from Dexed (https://github.com/asb2m10/dexed): the FM6 engine's synthesis, ported to integer C (Dexed itself is GPL-3.0; only msfa is used; the FM6 factory patches are Felucca's own) Apache-2.0 firmware/src/fm6_core.c, LICENSES/Apache-2.0-msfa.txt
klattsch by Tony Gies (https://github.com/tgies/klattsch): design reference for the VOICE engine; no code copied. Formant data from Klatt (1980) / Hillenbrand et al. (1995) MIT (klattsch) credit only
X0X by charlesvestal (https://github.com/charlesvestal/fm1-x0x), a Felucca fork: the design of the browser emulator (the worklet, the device clock driven by its audio, the exports); its files credit it in their headers GPL-3.0 web/emu/
The second core: its start, mailbox and guards from X0X by charlesvestal (https://github.com/charlesvestal/fm1-x0x, with the dual-core findings of Melodee by keremimo, https://github.com/keremimo/melodee); its audio split, measurements and hardening after Jangada by zednaked (https://github.com/zednaked/jangada); each credited in its files GPL-3.0 firmware/hal/fm1_cpu1.{h,S}, firmware/src/fx.c, tests/c1_host.h, tests/dualcore_test.c
DotGothic16 font by The DotGothic16 Project Authors (https://github.com/fontworks-fonts/DotGothic16): the browser emulator's knob labels, served with its page (cut to printable ASCII; the font declares no Reserved Font Name) SIL OFL 1.1 web/emu/fonts/DotGothic16-subset.woff, LICENSES/OFL-DotGothic16.txt (also web/emu/fonts/OFL.txt)
JieLi AC79 SDK by JieLi Technology: three of its files go into every .fwsc package (below); none are in this tree Apache-2.0 LICENSES/Apache-2.0.txt

On the device, HOME held > ABOUT opens the information screen; turning PRESETS scrolls on into CREDITS, a short list of these authors, licences and source URLs.

JieLi SDK files in the packages (Apache-2.0)

A .fwsc package made by tools/build.py (with tools/fm1pkg_make.py; this is the package the web installer installs) holds three unmodified files from the JieLi AC79 SDK (https://gitee.com/Jieli-Tech/fw-AC79_AIoT_SDK, cpu/wl82/tools/). They are read from your SDK checkout at build time (see BUILDING.md); no SDK files are in this tree.

File in the package What it is
uboot.boot the first-stage boot loader (SPL)
cfg_tool.bin the chip configuration block
eq_cfg_hw.bin the default hardware EQ table

They are licensed under the Apache License, Version 2.0 (LICENSES/Apache-2.0.txt), not under the GPL, and their copyright stays with JieLi Technology. The SDK has no NOTICE file. Apache-2.0 files may be distributed together with GPL-3.0 code; Felucca itself stays GPL-3.0-only.

Every distribution of a package carries the licence texts with it: the release folder (tools/build.py --release) and the site (web/make_site.py, next to the package in firmware/ and linked from the installer page).

No vendor material

No M-VAVE material is part of Felucca. The firmware links no vendor code and contains no vendor data, and the packages hold only Felucca and the three SDK files above. The installer's "Return to official V15" holds only the official file's size and SHA-256: you select the official firmware file you downloaded yourself, and it is checked and installed in your browser, never uploaded or redistributed.

Contributions

Contributions are welcome under GPL-3.0-only. Changes to the five engines and the code they share (firmware/engines/) go to the Felucca-Engines repository, under the MIT licence.

Trademarks

"Felucca" and "Hügelton Instruments" are names of Hügelton Instruments.

"M-VAVE" and "FM-1" are trademarks of their respective owners. Felucca is independent firmware that runs on FM-1 hardware. It is not affiliated with, endorsed by or supported by those owners.

Radio

Felucca never enables the Bluetooth / Wi-Fi radio of the hardware.

Core profile: OPN-1 chip cores

Core4 includes the BSD-3-Clause YM2612 and Sega PSG C cores from OPN-1, pinned at 3319da44abc76fd0ce208de7c37405feef5770fd. See OPN_CORES.md for attribution, modifications and test-only reference licenses. The complete BSD notices are retained in firmware/src/opn2/opn2.c and firmware/engines/src/segapsg/psg.c and accompany the core4 package. The shared engine wrapper remains MIT; its Sega core retains BSD-3-Clause. Comparison tests from OPN-1 are GPL-3.0-only. ymfm, Nuked-OPN2 and the MAME reference sources in the tests are not linked into firmware.