Firmware

analogBEAST

Loud86/100

M-VAVE FM-1 synth firmware: two DSP routings, Steiner-Parker filter, 128 patterns, SONG and ALBUM modes.

analogBEAST is custom firmware for the M-VAVE FM-1, by @dzwerg. Open source under GPL-3.0, latest release v1.1 (October 2026).

forM-VAVE FM-1·by@dzwerg

Unclaimed. Is this yours? Sign in with GitHub as @dzwerg to claim it.

Downloads
0
Stars
0
Forks
0
Commits
81
Last commit
Download v1.1

analogBEAST-v1.1.fwsc· 596 KB· +1 file

GPL-3.0· dzwerg/analogBEAST·dzwerg.github.io/analogBEAST/·downloads come from the creator’s GitHub releases

79
Commits
3
Releases
79 commits and 3 releases in the last year
Activity · last 12 months

analogBEAST 2.0 RC1

Experimental release candidate for the M-VAVE FM-1 · JieLi AC79 · device firmware identity FM-1_901.

RC1 / TEST BUILD — not a fully hardware-validated final release. The firmware was built natively on the developer's X1, but not every synthesizer mode, preset transition, MIDI route or USB-audio host has been verified on hardware. Keep a known-good recovery image. Flash at your own risk.

Highlights

  • Five selectable synthesis modes: KORG, BRUTE, ANALOG, LOFI and experimental B1. KORG and BRUTE share the Golana engine path; ANALOG and LOFI use Felucca engine paths. B1 is a custom experimental bass engine, not yet a faithful Donner Essential B1 emulation.
  • SYNTH MODE interface expanded from the KORG/BRUTE-only selector to five modes (Stage 15).
  • Preset browser expanded to 49 entries (Stage 18): user instruments P01–P32, original Felucca ANALOG factory sounds A01–A12, original LOFI factory sounds L01–L05. The factory entries are built into the firmware and do not consume user slots. Selecting a factory preset is intended to activate its owning engine and load its parameter set. Actual UI/audio behavior requires on-device verification.
  • Instrument compatibility: the existing 32-slot user flash layout is retained. P18 = SYNTH KEYBOARD (legacy source name SYNT PIANO), P19 = PETZ MOOG; embedded 192-byte source originals were independently backed up in Stage 16. That does not constitute a live device-flash backup of edited versions.
  • USB composite audio/MIDI and mode switching: USB source carried forward unchanged from the working USB8 original-composite baseline. Four USB profiles under development: AUDIO + MIDI, MIDI DEVICE, AUDIO DEVICE, MIDI HOST. Successful operation and compatibility vary by host and must be tested. USB audio output volume and local analog master are intended to be separate controls.
  • Four-part engine/DSP state design: per-part shared synthesis state, engine switch fade and state reclaim; not five always-running complete engines per part.

Factory sounds

ANALOG (12)LOFI (5)
SAW LEADPULSE LD
SOFT PADWAVE BASS
SQR BASSARP 8BIT
PWM STRWAVE LEAD
ACIDSTEP LEAD
SINE KEY
RAVE
SUB BASS
PLUCK
BRASS
WIND
STRINGS

B1: experimental / known limitations

The B1 engine currently exposes WAVE, CUT, RES, DEC, DRV, DLY, FDBK and SLIDE on two EDIT pages. It is not yet a control-for-control model of the Donner B1. Missing or incomplete behavior includes pitch knob, filter envelope depth, dedicated accent amount and step-accent coupling, saturation on/off and tone, separate delay on/off and adjustable delay time; the current delay is very short. Do not describe B1 as a complete hardware emulation.

RC1 change history

MilestoneChanges
USB8Recover working original composite USB audio/MIDI descriptor path; preserve as fallback.
USB9 Stage 1–5Integrate additional engine identifiers and per-part DSP-state infrastructure; prepare B1 synthesis.
Stage 6Register B1; remove incompatible libc usage and safeguard MIDI Learn flash row 14 from engine ID 14 favorite writes.
Stage 7–12Correct B1 glide/first-note behavior, accent filter action, UB in signed shifting and bidirectional glide landing; native build passes.
Stage 13–14Static source integration audit and pre-flash file checks; not hardware validation.
Stage 15Five-way SYNTH MODE with external engine OSC 1/OSC 2 parameter pages.
Stage 16Extract/verify embedded P18/P19 original records into a separate local backup; not a device backup.
Stage 17Compile-time factory-catalog / 32-slot safety checks, retaining original 12 ANALOG and 5 LOFI sounds.
Stage 18 — RC1Extend the actual Golana PRESETS UI from P01–P32 to P01–P32 + A01–A12 + L01–L05 and route factory selections to their engines; native JieLi build passes.

Build

Stage 18 was built on WSL with Python and the JieLi AC79 SDK/toolchain:

cd /mnt/c/FM1/analogBEAST-v1.2/analogBEAST-2.0-USB9-ENGINE-STAGE18-WORK
export AC79_SDK=/home/datenzwerg/ac79-sdk
export JIELI_TOOLCHAIN=/home/datenzwerg/.jieli/jieli-linux-toolchains-20260730.1
python3 tools/build.py

Reported build: felucca.bin 256,536 bytes; .data + .bss 60,388 / 73,728 bytes; DSP pool 302,048 / 368,640 bytes; .fwsc 610,086 bytes, identity FM-1_901. The bootloader package is generated by the ordinary build tooling; there is no intended change to the boot manager or bootloader source in RC1.

Flashing and recovery

Make and verify an independent backup of any edited device presets before flashing. Source-embedded P18/P19 records are not proof of current device-flash contents. Keep the known-good USB8 ORIGINAL COMPOSITE .fwsc outside this repository. Use the existing FM-1 installer, double-check package/device identity FM-1_901, and never disconnect while writing. If USB MIDI becomes unreachable, recovery may require a separate flashing route.

To validate before final release

  1. Browse all 49 entries on actual FM-1, load A01 and L01, verify automatic engine selection and sound.
  2. Verify P18 SYNTH KEYBOARD and P19 PETZ MOOG retain their expected sound; never overwrite their slots during test.
  3. Exercise KORG↔BRUTE↔ANALOG↔LOFI↔B1 transitions, all four parts, voice cleanup and preset saves.
  4. Validate USB device/host modes and USB audio level independent of local MASTER on the intended computers/mobile devices.
  5. Rebuild B1 from the original control/signal-flow specification and validate by ear and measurements.

Provenance / licenses

This project integrates/derives material from Felucca, Golana and other firmware components. Review and preserve all applicable upstream licenses and notices before a public redistribution. This README does not claim original authorship over upstream code.

Entwicklung seit analogBEAST 1.1

MUSIC DISK / MD16

Das MUSIC DISK-System ist eine zentrale Erweiterung von analogBEAST 2.0.

  • 292 KiB NOR-Flash-Bereich: 0x97000 bis 0xDFFFF.
  • Eigenes MD16-Dateisystem mit variablen Datensatzlängen.
  • Pattern-IDs bis 512 im aktuellen Speicherpfad.
  • Dateiobjekte für Patterns, Songs und Alben.
  • Weitere definierte Datentypen für Presets, VL-1 und Musicbox/M1.
  • CRC32-Prüfsummen, Sequenznummern und Commit-Marker.
  • Schutz gegen unvollständige Schreibvorgänge.
  • Kompakter RAM-Index für schnelle Pattern-Auswahl.
  • Logische Löschung über Tombstone-Datensätze.
  • Geschützte Speicheroperationen außerhalb des Audio-Interrupts.
  • Kein automatisches Formatieren oder Überschreiben fremder Datenträger.
  • Keine automatische Neuinitialisierung des Datenträgers nach Firmware-Updates.

MD12 und MD13 waren frühere Entwicklungsstufen mit alternativen Transaktions- und Speicherverfahren. MD16 ist das neuere Dateisystem.

Wichtig: Garbage Collection ist im Dateisystem implementiert, im Stage-18-Gerätepfad jedoch deaktiviert. Die Datenfunktionen benötigen weitere Hardware- und Stromausfalltests.

Sequencer und Arranger

  • Erweiterte Pattern- und Step-Datenmodelle.
  • Song- und Album-Datenstrukturen.
  • MIDI-Import- und Musicbox-Werkzeuge.
  • Bearbeitung und persistente Speicherung von Pattern-Daten.
  • Wiedergabe-, Transport-, Loop- und Step-Funktionen.
  • Schutz vor unsicheren Schreibvorgängen während der Wiedergabe.
  • Pattern-Auswahl anhand tatsächlich vorhandener Dateien.

Nicht alle historischen Entwicklungsfunktionen sind automatisch Bestandteil der aktiven, hardwaregetesteten RC1-Bedienoberfläche.

Synthesizer und DSP

  • KORG- und BRUTE-Synthesemodi.
  • Felucca ANALOG und LOFI.
  • Experimentelle B1-Bass-Engine.
  • Engine-spezifische Parameterseiten.
  • Dynamisch wiederverwendeter DSP-Zustand je Part.
  • Fade und Ressourcenfreigabe beim Engine-Wechsel.

Die B1-Engine ist noch keine originalgetreue Donner-B1-Emulation.

Presets

  • 32 bestehende beschreibbare User-Instrumente.
  • 12 originale Felucca-ANALOG-Werksklänge.
  • 5 originale Felucca-LOFI-Werksklänge.
  • Gemeinsame Preset-Auswahl mit vorgesehener Engine-Umschaltung.
  • P18 SYNTH KEYBOARD und P19 PETZ MOOG als eingebettete Originaldatensätze erhalten.
  • Keine Änderung des bestehenden User-Preset-Flash-Layouts.

Die eingebetteten Originale ersetzen kein Backup eventuell bearbeiteter Presets vom tatsächlichen Gerät.

USB und MIDI

  • USB-Audio und USB-MIDI als Composite-Gerät.
  • Umschaltbare USB-Device-, Audio- und MIDI-Host-Profile.
  • MIDI-Routing und zusätzliche Importwerkzeuge.
  • Getrennte Regelung von USB-Audio-Ausgang und lokalem MASTER.
  • Erhalt des USB8-Original-Composite-Quellstands als Rückfallbasis.

Entwicklungs- und Teststatus

RC1 basiert auf dem nativen Stage-18-Build. Es handelt sich um ein experimentelles Pre-Release. Insbesondere MUSIC DISK, USB-Host-Kompatibilität, Preset-Wechsel und B1-Klangverhalten sind noch nicht vollständig auf Hardware validiert.