KARMA / FM-1
KARMA

Four tracks, a drum synth and a small cast of characters for your FM-1.

KARMA is free custom firmware for the M-VAVE FM-1. An acid bass or a Juno, physical modelling, two dozen synthesis models, a drum synthesizer, a 64-step sequencer and generators that keep writing while you play. It runs on the FM-1 today, and in your browser.

Free foreverGPL-3.0-onlyNot for sale
DRUM · HEX. A kick goes in on the step grid and the drummer plays it.
STATUS

Version 3.0 runs on the FM-1. Tested on real hardware: both processor cores, USB audio with stems, MIDI in and out, and sync to a DAW. The installer is open.

START

Three steps, in this order

  1. 1

    Try it in the browser

    The simulator runs the actual KARMA firmware on a drawn FM-1. Play it with your keyboard, plug in a MIDI controller, record a video of the screen with sound, and save your patterns to open later.

    Open the simulator →
  2. 2

    Install it on your FM-1

    The web installer flashes KARMA over USB from Chrome or Edge, with no tools to download. Updating keeps your projects and settings, and the same page puts the official firmware back.

    Open the installer →
  3. 3

    Edit and back up

    The web editor connects to the FM-1 over USB to edit sounds, sequences, songs, drum kits and settings, and saves your projects to files on the computer.

    Open the editor →
INSIDE

Four tracks, each with its own engine

Every track plays at once from the same 64-step sequencer. Each one keeps its colour across the screens, the LEDs and this page.

ACID edit page: WAVE SAW, CUT 31, RES 79, ENV 63, with the Buddha.
TRACK 1

ACID or JUNO

303 voice from X0X · Juno voice from FM-106

ACID is a TB-303 voice with accents and slides. JUNO is a Juno-106 style polysynth: DCO, an IR3109-style ladder filter and BBD chorus, up to six voices.

ELEMENTS body page: model PICK, strike 91, brightness 55, damping 63, with the gorilla on congas.
TRACK 2

ELEMENTS

Built on Mutable Instruments' open-source Elements code

Physical modelling. Strike, pluck, bow or blow a modal resonator and shape its body. The Ominous Voice is in here too.

PLAITS tone page: model FOLD, with the flying saucer beaming down.
TRACK 3

PLAITS

Built on Mutable Instruments' open-source Plaits code

24 synthesis models: virtual analog, waveshaping, FM and 6-op FM, grain, wave terrain, string machine, chiptune, strings, modal, speech, particle and analog drums.

HEX drum synth page: a kick's decaying waveform with P.AMT, P.DEC, RATIO and FM knobs.
DRUM

HEX drums

Drum voices from the open-source LXR-02 firmware by Erica Synths

Its drum, snare, cymbal and hi-hat voices, ported to the FM-1: FM, pitch drops, click transients, filters and distortion, synthesised as they play. Five kits ship with it, plus four user kits for your own.

SEQUENCER

64 steps per track

  • Chords of up to 4 notes on a step
  • Ratchets, accents, slides
  • A chance condition per step
  • PLAY modes: forward, reverse, pendulum, random, walk, chance, jump, stride
  • A song arranger to chain sections
GENERATORS

Loops that write themselves

  • GEN writes each synth track's part and keeps it evolving as it plays. Press a key on its page and the whole band moves to that key.
  • ACID GEN writes acid lines with the TB-3PO generator.
  • DRUM GEN reads a Grids-style drum map with X/Y and a density per lane, or makes Euclidean rhythms.
HARMONY

One key for the whole band

  • Set a KEY, a MODE and a chord PROGRESSION, and every GEN track follows it.
  • Each track plays its role: an acid bass on the roots, a voice-led line of chord tones, a lead motif that develops over four bars.
EFFECTS

CLOUD, reverb, delay, punch-in

  • CLOUD, a granular effect built on the open-source code of Mutable Instruments' Clouds, as a send from each track and each drum sound
  • Reverb and delay
  • Punch-in performance effects held on the keys: loops, stutter, filters, freeze and more
USB

Audio interface and MIDI

  • Class-compliant stereo USB audio at 44.1 or 48 kHz
  • USB MIDI in and out: the sequencer plays out as MIDI, one channel a track
  • Follows your DAW's clock and play button (SYNC = USB)
  • STEMS: six channels into your DAW, tracks 1–3, drums and the FX return, each on its own
CONTROLLERS

Bring your own knobs

  • Map a MIDI controller to the FM-1's eight rotaries. An Akai MPK mini's eight knobs line up one to one.
  • In the simulator, Web MIDI works when you run it from your own computer.
HOW TO PLAY

The essentials on one screen

Tap a button to open its pages, hold it to turn the keys into its tools. The rest follows from that.

  1. 01 · GETTING AROUND

    Tap for pages, hold for keys

    • HOME: the song's tape reels. Hold it for the MENU.
    • SELECT walks the pages, ALGORITHM picks the track, PRESETS its sounds.
    • Hold a button and the keys become its layer: steps, effects, mixer, note repeat.
  2. 02 · TRACKS

    Four tracks, four characters

    • 1 ACID or JUNO, with the Buddha.
    • 2 ELEMENTS, the gorilla. 3 PLAITS, the saucer.
    • DRUM HEX kits, the drummer. The wizard runs the effects.
  3. 03 · GEN

    Let the band write

    • SEQ, then SELECT to GEN: turn it ON and a part is written at once.
    • Press a key there: GEN starts and every GEN track moves to that key.
    • DRIFT 0 locks it; higher, it varies but keeps its shape.
  4. 04 · HARMONY

    One key, one progression

    • KEY, MODE and PROG: from a drone to i – bVI – III – bVII.
    • Bass on the roots, a line of chord tones, a lead motif that develops.
    • Turn a knob and every GEN track is rewritten to match.
  5. 05 · DRUMS

    GRID, KIT, DRUM GEN

    • On the drum screen the white keys are the 16 steps; KNOB 1 picks the sound.
    • SEQ steps GRID → KIT → DRUM GEN.
    • DRUM GEN: a Grids-style map with X / Y, or Euclidean rhythms.
  6. 06 · FX AND PUNCH-IN

    Hold FX, play the keys

    • Hold FX: each key is an effect on the whole mix, while you hold it.
    • Tap FX for the pages: delay, reverb, slicer, inserts, CLOUD grains.
  7. 07 · RECORD AND UNDO

    Nothing is lost

    • REC records into the selected track; hold it to clear the track.
    • EDIT + OCT− undoes, also after GEN. Hold SAVE to save the project.
  8. 08 · USB

    An audio interface, with stems

    • Class-compliant USB audio and USB MIDI, no drivers.
    • MENU › AUDIO › USB AUDIO = STEMS: six channels into your DAW, each track on its own.
    • GLO › SYSTEM › OUT = SEQ: the pattern goes out as MIDI to record in the DAW.
OPEN THE FULL CHEAT SHEETEvery page and knob · printable

The same sheet opens from inside the simulator.

CHARACTERS

Every screen has somebody on it

The pixel art is drawn for KARMA, in the spirit of the OP-1's playful screens. The characters react to the notes you play. These are real screens, rendered from the firmware.

HOME page with two tape reels and the four tracks listed.
HOMETape reels turn while the song plays.
The laughing Buddha on the ACID page.
THE BUDDHALaughs with the acid bass on track 1.
A gorilla playing two congas on the ELEMENTS page.
THE GORILLAPlays congas for ELEMENTS.
A flying saucer with a light beam on the PLAITS page.
THE SAUCERHovers over PLAITS and beams down each note.
A drummer with headphones behind a full kit, above the step row.
THE DRUMMERHits what the drum track plays.
A wizard casting a spell on the CLOUD send page.
THE WIZARDCasts the effects on the FX and CLOUD pages.
The mixer: four characters on podiums above their level meters.
THE MIXERThe whole band on podiums, one per track.
The step page with chords written on several steps.
STEPSNotes and chords, 16 steps to a page.
The PUNCH layer: every white key labelled with an effect, like LOOP 4, STUTT, FREEZE.
PUNCHHold FX and every key is a performance effect.
DRUM GEN page: kick, snare and hats lanes with MAP X, MAP Y and CHAOS.
DRUM GENMove through the drum map with X and Y.
GEN page on the JUNO track: generated notes with DRIFT, DENS and RANGE.
GENA loop that rewrites itself as it plays.
HEX drum synth page showing the kick waveform.
HEXShape every drum sound from its synth parameters.
FAQ

Before you install

Can I go back to the official firmware?

Yes. The installer page has a Return to the official firmware section: download M-VAVE's official FM-1 V15, select its file, and it goes back the same way KARMA went on. Save a backup with the editor first: the official firmware cannot open KARMA's projects.

What do I need to install it?

Chrome or Edge on a computer (the installer talks to the FM-1 over Web MIDI, which Safari and Firefox do not offer for this), and a USB cable that carries data. Many cables that come with chargers only carry power, and the FM-1 will not show up with one of those.

I run FM1 Open or another custom firmware. What should I do?

Return to the official V15 firmware first, then install KARMA from there. Going from one custom firmware straight to another is not tested.

Has it been tested on a real FM-1?

Yes. Version 3.0 has been played, recorded and synced on a real FM-1. It is still young: if something misbehaves, report it on GitHub.

Does it cost anything?

No. KARMA is free and will stay free. It is licensed GPL-3.0-only, the source is public, and it is never for sale.

Can I use it as an audio interface?

Yes. Over USB the FM-1 shows up as a class-compliant stereo audio interface at 44.1 or 48 kHz, and as a MIDI device, both named FM-1 KARMA. Set MENU › AUDIO › USB AUDIO to STEMS and it becomes a six-channel interface: each track on its own channel, plus the effects in stereo. Set GLO › SYSTEM › OUT to SEQ and the sequencer plays out as MIDI, and SYNC to USB to start and stop it from the DAW.

SUPPORT

KARMA is free and stays free. If it makes music with you, buy Ariel a coffee.

KARMA is made by one person, Ariel Muchnik, in his own time. A coffee on Ko-fi goes into that time: testing on real hardware, new features and fixes. The firmware, the simulator and the editor stay free and open for everyone either way.

Ko-fi handles the payment. Nothing in KARMA asks you for money.

CREDITS

Built on other people's open work

KARMA is made by Ariel Muchnik. It stands on the code below; each part keeps its own licence.

PROJECTWHAT KARMA USESLICENCE
FeluccaThe firmware KARMA is based on, by Leo Kuroshita, Hügelton InstrumentsGPL-3.0
SLOOPThe Felucca fork KARMA grew from, by isod89GPL-3.0
X0XCharles Vestal's TB-303 voice (after Open303, MIT) and his port of TB-3PO from the Phazerville Hemisphere suiteGPL-3.0
FM-106PatttF's Juno-106 voice, after ultramaster KR-106GPL-3.0
Plaits, Elements, CloudsOpen-source code by Émilie Gillet for Mutable Instruments: the PLAITS models, the ELEMENTS exciters and Ominous Voice, the CLOUD granular effectMIT
GridsÉmilie Gillet's drum maps, read by DRUM GENGPL-3.0
LXR-02 firmwareErica Synths' open-source drum machine firmware: its drum, snare, cymbal and hi-hat voices and click transients, ported to the drum trackGPL-3.0
JIANT FMThe idea of one chord plan for every generated part (and its pitch helpers), and the approach to USB stems, from Juan Jiant's FM-1 firmwareGPL-3.0
DotGothic16The pixel font on this page's labels, by the DotGothic16 Project AuthorsOFL-1.1