Patchwerk is a modular synthesizer for the M-VAVE FM-1 with over 80 modules. Build and play patches directly on the FM-1, or use the browser emulator, which runs the same firmware and includes a visual patch bay. Connect your FM-1 over USB to control it from the browser, with changes synced both ways.
Patchwerk is a modular: you build a sound by placing modules (oscillators, filters, effects, sequencers, modulators) and joining them with cables. Everything is a voltage, so any output can feed any input: a sequencer can play a filter, an envelope can steer a delay. HOME is always the patch screen, and you can build and edit patches right on the FM-1. Press a page's button again to turn to its next page.
GLO plus another control does copy, bypass, groups and tempo. The on-unit help (PRESETS, then ALGORITHM) and the cheatsheet list them all.
The same modules and firmware as the FM-1, drawn as boxes and cables on a bigger canvas. Drag between jacks to connect, drag a module to move it, click a cable to remove it.
Explore Patchwerk's modules, including synths, samplers, effects, sequencers, and modulation tools.
Four banks of eight sounds, A through D, shared by SAMPLER, GRANULAR and DRUM RACK.
Click a slot to load a sound, or drag and drop up to eight audio files onto a bank. Trim removes silence, and Compress reduces file size. Presets load the included banks: A is an 808 kit, B a 909 kit, C FM drums and D various sounds. Drum banks run kick, snare, clap, closed hat, open hat, tom, cowbell, crash, so pads 1–8 of a DRUM RACK line up.
When connected to an FM-1, Send saves samples to its flash memory. You can also record directly on the FM-1 using AUDIO IN and SAMPLER.
Click a slot, or drop audio files on it or on a bank (anywhere else here they fill the empty slots).
The CZ synth includes 81 built-in presets and four banks for your own sounds.
Click a slot or drop Casio CZ SysEx files (.syx) to load up to 128 presets per bank. Supports CZ-101, CZ-1000, CZ-3000, CZ-5000 and CZ-1 files.
When connected to an FM-1, imported banks are automatically saved to its flash memory.
FM-DX includes 32 built-in presets and four banks for your own sounds.
Click a slot or drop Yamaha SysEx files (.syx) to load presets from the TX81Z, DX21, DX27 or DX100. Supports full banks and individual voices.
When connected to an FM-1, imported banks are automatically saved to its flash memory.
The FM-1 has twelve built-in palettes (Settings > PALETTE) and a USER slot for your own. Start from one, change any color and watch the screen above change, then send it to a linked FM-1.
Saved palettes stay in this browser. Sent to the FM-1 they become USER (Settings > PALETTE).
Lower gamma and higher “up to” lift the darks more; Color below 1 turns the colors toward grey; Purple to blue turns the violets toward blue, as the unit's panel does. Compare with Settings > DIAGNOSTICS > ALGORITHM on the unit.
Save your eight user patches (U1–U8), current patch, and optionally your samples in a single backup file. Back up or restore from either the emulator or a connected FM-1.
Open DIAGNOSTICS > CPU by module on the FM-1 for a few seconds, then save its numbers (and the BOOTPROBE lines at the end) as a text file to send back. Needs the FM-1 linked.
The patch you're playing as a file of its own, with its snapshots and performance page. Drop a patch file on the patch bay to open it.
Install Patchwerk from this page over USB. It takes about two minutes and your FM-1 keeps its own firmware recoverable.
Choose the patchwerk.fwsc you built (app/build/patchwerk.fwsc).
Download M-VAVE's firmware from their site (FM-1 V15: FM-1.fwsc).
WL82 UBOOT1.00. If it does, you can restore the original firmware using MvaveFM1Unbricker (Windows/Linux) or FM-1 Switch (Mac/Windows).Patchwerk is an app on fm1-base, the community platform for FM-1 firmware (on felucca-bsp, from Felucca). It builds on a Mac or Linux; on a Mac, Docker runs JieLi's compiler for the chip. You install it over USB, from a terminal or from Chrome.
Install Docker Desktop and start it. Then, in the Patchwerk folder:
pip3 install Pillow mido python-rtmidi
sh base/tools/get_toolchain.sh
git clone --depth 1 --branch AC79NN_SDK_V1.2.1_2023-12-13 \
https://gitee.com/Jieli-Tech/fw-AC79_AIoT_SDK.git ~/fw-AC79_AIoT_SDKThe build checks RAM, pool and flash sizes and refuses anything that would break an FM-1.
./build.sh # app/build/patchwerk.fwsc
Back up your projects and samples. Connect the FM-1 with a USB data cable. The installer asks before it writes, then restarts the FM-1 into Patchwerk.
python3 base/bsp/tools/fm1_install.py app/build/patchwerk.fwsc
Make a release build and fm1-base's installer page around it, serve it locally (Web MIDI needs a secure page), and open localhost:8000/install/. Its last section puts M-VAVE's firmware back.
./build.sh --release 0.1 python3 base/tools/make_site.py app app/build/patchwerk-0.1.fwsc 0.1 /tmp/patchwerk-site cd /tmp/patchwerk-site && python3 -m http.server 8000