VIBE FM Mk1 Open firmware, officially supported. The first 100 get 10% off Join the list →

VIBE FM · THE LAB EARLY ACCESS

Build for
VIBE FM

Write a Vibe – or port your FM-1 firmware – in plain C. The same file runs in your DAW as a VST3 / AU / CLAP plugin, standalone, in the browser (iOS coming) and on the VIBE – no GUI code, no per-platform builds.

FreeApache-2.0 SDKYour code, your licenceNo hardware needed
The VIBE Box prototype running VOX, the voice processor, with a microphone at its input and an FM-1 beside it as its controller
VIBE Box prototype · running

Open now · The VIBE Box Challenge

Build a Vibe.
Win a VIBE Box.

Write a Vibe that uses at least one or two things the FM-1 can't – the big screen, the pads, audio in, MIDI out, CV, the stage … The community votes on the hub, and two VIBE Boxes go to their makers.

Got an FM-1 firmware? Port it to a native Vibe – that counts too. Keep your engine, credit the original, and give it that extra VIBE touch.

1 × community vote1 × the hub's pickOpen sourceWorldwide
The VIBE Box (rendering): a 4-inch screen, F1–F6, encoders 1–4, A, B and DATA, colour keys and a play section
The prize · VIBE Box

The VIBE Box developer kit – it plays every Vibe natively, the same file as in your DAW. Shown is the rendering: your kit is hand-built, so boards, case and buttons will differ. Sound comes over a USB audio interface.

Submissions close in

–days
–hours
–min
–sec

15 December, 23:59 CET · the vote until 26 December · winners 27 December

Your first Vibe in 3 steps

About ten minutes. You need a terminal and Zig 0.13.0 (one download, it brings the C compiler – unpack it and put zig on your PATH). Windows: use Git Bash or WSL.

1

Get the SDK

Clone it from GitHub. Everything is inside: the SDK, the build tool, six examples and the manual.

$ git clone \
    https://github.com/Vibe-FM-SDK/vibe-fm-sdk.git
$ cd vibe-fm-sdk
2

Build an example

hello is about 60 lines: a sine on the keys, pads that light up, a knob that bends. Copy it and make it yours.

$ sh tools/build.sh examples/hello
built build/hello.wasm
packed build/hello.zip

Your own: cp -r examples/hello my-synth, edit, sh tools/build.sh my-synth.

3

Play it

Browser: open the Playground and drop hello.wasm onto the device.
DAW: drop hello.zip onto the VIBE FM plugin window.

# changed something?
$ sh tools/build.sh my-synth
# drop it again – it replaces the old one

That's it. The file you just dropped is the one that runs on the VIBE FM – unchanged, sample for sample the same sound.

What you get

A whole instrument to write for – far beyond the FM-1's 240 × 240 and seven knobs.

480 × 320 colour screenDraw it yourself, with a small graphics and font kit (vibe_gfx.h).
Up to 128 pads16 on the VIBE, 64 on a Launchpad, any grid up to 128 – velocity and RGB light on every one. Plus 25 keys on the Mk1.
7 encodersFour for your sound, A and B, DATA – plus F1–F6, K1–K6 and the transport keys.
Audio in: IN 1 / IN 2Line, mic or guitar – effects, vocoders, loopers. On the VIBE up to 16 in / 16 out with a multichannel interface (SDK 26).
MIDI in and outNotes, CC, SysEx, clock – play external gear, sample-exact.
CV / GateCV and gate out (1 V/oct), CV in, clock in – for your modular.
Your DAW's song positionTempo, start/stop, loops. Named parameters, automation, an Editor page – without GUI code.
Samples & storageRead WAV/MP3 from card, stick or folder; save sounds and projects.

New in SDK 23 · The stage

A whole screen of your own –
in the plugin and the browser.

Beside the device's 480 × 320, your Vibe can draw a second, bigger picture: up to 1280 × 720, laid out however you like. Turntables for a DJ, a full sequencer grid, a waveform across the whole width – or a completely different face for your instrument. Clicks, drags, the wheel and touch come back to your code.

In VIBE FM VST it fills the plugin window; in the Playground it sits above the device or in its place. On the VIBE it comes later over HDMI.

/* the picture is yours */
static uint16_t stage[960 * 540];
vibe_stage(stage, 960, 540, 0x101418, VIBE_STAGE_REPLACES);
/* … and you draw it in vibe_on_stage() */

The one rule: everything stays playable on the device too – the stage is a view and a shortcut, never the only way. examples/example-stage is the smallest one (90 lines).

VIBE DJ's own stage in VIBE FM VST: two turntables, a mixer with EQ and filters, a crossfader and the music list
VIBE DJ draws its own stage in VIBE FM VST: two decks, a mixer, the crossfader, the music list.

Want to see what's possible? OberVave, VIBE DJ, S1VAVE and more – all open, all playable in your browser. The first Vibes →