M-VAVE SMK-37 (emulated)

click Start to boot SMK-37 emulator, full page ↗

Runs an SMK-37 emulator in a WASM virtual machine: the FM-1's chip with the SMK-37's keys, pads, faders and wheels.

Turn the phone sideways for a bigger keyboard.

A…' play C4–F5 Z X octave Space SEQ PLAY 1…8 pads a key clicked lower plays harder Play chords with several fingers · drag faders, wheels and knobs How to use it, the firmwares ↓

What this is

The M-VAVE SMK-37 is a 37-key keyboard with 16 RGB pads, 8 knobs, 4 faders, pitch and mod wheels and a colour screen. Inside it is the FM-1's chip, a JieLi AC791N, with the same flash layout, audio and update path; only the panel is wired differently. So the FM-1's community firmwares can be ported to it, and genkigenki's fm1-to-smk37 kit has done so for these. This page runs them unchanged on an emulated SMK-37, the same update packages you would install on a real one.

  1. Pick a firmwareSnoop37 (SLOOP) is the default. Each is downloaded from genkigenki's install page when you start it. The list below says what each one does.
  2. Press StartA browser only plays sound after a click. Changing the firmware or the clock later reboots the keyboard.
  3. PlayUse the computer keyboard, the mouse or a touch screen, or a MIDI keyboard (MIDI keyboard). The status line shows the clock, the emulated CPU's speed and the load on the audio thread.

The SMK-37 Pro, SMK-37 Elite, MKE-P37 and Donner Starrykey 37 Play share this hardware; the packages here are the SMK-37 Pro builds.

Playing

Computer keyboard

  • Z OCTAVE−
  • X OCTAVE+
  • Space SEQ PLAY
  • R SEQ REC
  • 1…8 the top row of pads
  • ←→ K1
  • ↓↑ K2
  • ,. K3

What each button, pad and knob does is up to the firmware: its card's source link says.

Mouse and touch

  • Click a key, or drag across the keys for a glissando. A key hit near its far end plays harder: the emulator closes the key's second contact sooner, which is how the SMK-37 measures velocity.
  • Press a pad to hit it. Drag a fader, or scroll over it. The pitch wheel springs back when you let go; the mod wheel stays.
  • Drag a knob up or down, or scroll over it.
  • On a touch screen every finger counts. On a phone, turn it sideways.

MIDI keyboard

The SMK-37 has no MIDI in jack, so a MIDI keyboard plays its keys instead: notes C3–C6 press the matching key with the note's velocity, the pitch bend moves the pitch wheel and the mod wheel the mod wheel. Chrome, Edge and Firefox have Web MIDI; Safari has none.

  1. Connect the keyboard.
  2. Choose it under MIDI keyboard, or choose “all inputs”, and allow MIDI access when asked.

In your DAW: AU and VST3

The emulator is also an instrument plugin: AU for Logic and GarageBand, VST3 for Ableton Live, Cubase, FL Studio, Reaper, Bitwig and Studio One, and CLAP. Load a firmware in its window (an SMK-37 package gets the SMK-37’s panel) and play it from the DAW's MIDI or with the mouse on its panel. The song keeps the firmware and the patches it saves.

Download the plugin for Macs with Apple silicon. The zip's INSTALL.txt says where each file goes. Building it from source: crates/fm1-plugin.

The firmwares

Every firmware on genkigenki's SMK-37 install page: SMK-37 builds of FM-1 firmwares, ported with the fm1-to-smk37 kit, and firmwares written for the SMK-37. Each is downloaded from there when you start it. “also on the FM-1” opens the FM-1 build on the FM-1 page.

    M-VAVE's own firmware

    The firmware the SMK-37 ships with runs here as the MIDI controller it is: its screen, buttons, pads and keys work. Press PATCH and play a chord, and it names the chord on its screen. No sound comes out: its notes go to USB and Bluetooth MIDI, which are not emulated. It is also interrupt-heavy (its key scan alone is ~120 000 interrupts a second) and runs at about 0.6× real time in the browser so far.

    To try it, download SMK-37 Pro_016.fwsc from M-VAVE, choose “M-VAVE stock firmware” and click Open .fwsc….

    Known limits

    • Not checked against a real SMK-37. The panel's wiring follows the fm1-to-smk37 kit's hardware map, whose facts were verified on a unit or read from the stock firmware; this emulator has not met one.
    • Speed. As on the FM-1 page: the status line shows the load, and a device that can't keep up gets a warning with a lower clock.
    • MIDI out (the TRS jack) and USB MIDI are not emulated.
    • M-VAVE's own firmware makes no sound here and runs slower than real time in the browser (above).

    How it works

    The same emulator as the FM-1 page, written in Rust and running as WebAssembly in the browser's audio thread, with the SMK-37's panel wired in: a 16×8 key matrix driven by four shift registers (37 keys with two contacts each for velocity, 18 buttons, 8 encoders), three analog multiplexers for the pads, faders and wheels, and 16 RGB pads whose colour frames share the screen's SPI bus. Each package says which board it is for, so an SMK-37 package opened on the FM-1 page gets this panel.

    How the emulator was built and checked: Emulating a Synthesizer Before It Arrives (PDF).

    Source and credits

    The emulator's source: github.com/joakimeriksson/fm1-emu.

    The SMK-37's hardware map and the ports: genkigenki's fm1-to-smk37 and SMK-37 install page. The firmwares are their authors' work, under the licences on each card.