vladiktron-spoke, image 1 from its README
Firmware

vladiktron-spoke

Loud87/100

Runs Elektron's Model:Cycles OS 1.13 on a virtual board in a macOS app (bring your own firmware)

vladiktron-spoke is custom firmware for the Elektron Model:Cycles, by @imaf6971. Open source under GPL-2.0, latest release v0.1.0 (October 2026).

forElektron Model:Cycles·by@imaf6971

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

Downloads
0
Stars
0
Forks
0
Commits
76
Last commit
Download v0.1.0

Vladiktron-Spoke-0.1.0.zip· 1.6 MB

GPL-2.0· imaf6971/vladiktron-spoke·downloads come from the creator’s GitHub releases

76
Commits
1
Releases
76 commits and 1 release in the last year
Activity · last 12 months

Vladiktron Spoke

Elektron's Model:Cycles OS, running on a virtual board in a Mac app.

Not a lookalike synth: the real OS 1.13 boots, draws the screen, runs the sequencer and makes the sound.

CI Licence: GPL-2.0-only macOS 14+ Apple Silicon

The Vladiktron Spoke window: the Model:Cycles front panel with its screen, knobs, pads and trig keys

Features

  • 🎛️ The whole front panel: screen, keys, knobs, pads and LEDs, all driven by the OS itself
  • 🔊 Audio through Core Audio, to the output you pick in Settings
  • 🎹 MIDI as two CoreMIDI port pairs, one for USB and one for the TRS jacks, as on the hardware
  • 🔌 USB audio both ways: route it through a loopback device to record in a DAW or play into the Model:Cycles
  • 🎚️ Arturia MiniLab 3 support: in DAW mode it becomes the whole front panel, with pad colours following the LEDs
  • 💾 Your work stays: quitting powers the OS off properly, so the active project is saved to the +Drive

[!IMPORTANT] Bring your own firmware. The app includes no Elektron code. It installs the OS from the free update on Elektron's support page.

Getting started

You need an Apple Silicon Mac with macOS 14 or later.

Download

  1. Get the zip from the latest release, unzip it and move the app to Applications.
  2. Open it. macOS blocks it the first time, because the app isn't notarised.
  3. Go to System Settings → Privacy & Security and click Open Anyway.

Build from source

You need the Xcode command line tools and CMake. Everything else is in this repository.

git clone https://github.com/imaf6971/vladiktron-spoke.git
cd vladiktron-spoke && ./build.sh
open "build/Vladiktron Spoke.app"

If you already have the .syx, ./build.sh model-cycles_OS1.13.syx installs it during the build.

First run

Choose or drop model-cycles_OS1.13.zip, or the .syx inside it, on the window. Only Elektron's original OS 1.13 is accepted.

Playing it

ControlMouseKeyboard
Keys and padsClick and hold. ⌥-click latches a key for combinations such as PATTERN + stepShift = FUNC, Space = PLAY
KnobsDrag up or down, or scroll over them. One step is one detent
LEVEL/DATAClick without dragging to press it (open, confirm)Return

MIDI

Two port pairs appear on your Mac:

  • Model:Cycles is the USB-MIDI port.
  • Model:Cycles TRS is the MIDI IN and OUT/THRU jacks.

Notes on channels 1–6 play tracks 1–6, and the auto channel (10) plays the active track. What the Model:Cycles sends is set in its own MIDI config menu, as on the hardware. Out of the box it sends nothing.

USB audio

Pick the routes in the USB Audio menu or in Settings. Model:Cycles to chooses the Mac output for its main mix (48 kHz, stereo). Into Model:Cycles from chooses the input that feeds it, which is mixed into its output at −18 dB; macOS asks for microphone access. To use it from a DAW, route through a loopback device such as BlackHole.

Arturia MiniLab 3

It is picked up automatically when connected. Press Shift + Prog for DAW mode, which gives you the full mapping with names on the MiniLab's display.

DAW mode mapping
MiniLab 3Model:Cycles
ShiftFUNC, held while Shift is held
Main encoder, its pressLEVEL/DATA, LEVEL/DATA press
Shift + main encoder pressKeys: PANEL (the default) ⇄ NOTES (keys play the active track, strips bend and modulate)
Knobs 1–8 (endless)PITCH, DECAY, COLOR, SHAPE, SWEEP, CONTOUR, DELAY SEND, REVERB SEND
Faders 1–4LFO SPEED, VOLUME + DIST, SWING, CHANCE: the fader position is the value (MIDI CC 102, 7, 15, 14 on the auto channel)
Pads A1–A6, A7, A8The six pads (velocity), PLAY, STOP
Pads B1–B8 (optional)RECORD, PATTERN, TRACK, PAGE, RETRIG, LFO, BACK, MACHINES
PANEL keys (octave 0)F3–G#4 = trigs 1–16; C3–E3 = FUNC, RECORD, PATTERN, TRACK, PAGE; A4–C5 = RETRIG, PUNCH, GATE, BACK
PANEL strips (tap a half)Pitch strip: TEMPO above, SETTINGS below. Mod strip: MACHINES above, LFO below

Shift + a key gives its FUNC function, as printed under the Model:Cycles keys: Shift + BACK opens the pad configuration menu, Shift + PUNCH the QUANTIZE menu, and so on. Shift + pads 1–3 stay the MiniLab's own (pad bank, program), so FUNC + those pads goes through the FUNC key of the PANEL layer.

Each value a knob moves is one value step on the Model:Cycles. Turned fast, it speeds up as with its own knobs.

Arturia mode mapping

With factory settings the MiniLab plays the Model:Cycles with a smaller mapping:

MiniLab 3Model:Cycles
Keys and stripsPlay the active track
Pads A1–A6, A7, A8The six pads, PLAY, STOP
Pads B1–B6, B7, B8Select track 1–6, RECORD, TEMPO
Knobs 1–8 (absolute: they stop at 0 and 127)As in DAW mode
Faders 1–4As in DAW mode

Other MiniLab programs or controllers need their CC numbers in app/MiniLab.swift.

Your data

Everything lives in ~/Library/Application Support/Vladiktron Spoke/. Model:Cycles → Reveal Data Folder opens it.

  • Quitting takes about two seconds: the OS shows "Shutting down...", saves the active project and powers off.
  • Reset +Drive… starts with an empty +Drive and keeps your settings.
  • Factory reset… does the same and also restores the factory settings.
  • Install OS… installs the firmware again, for example to bring back a missing file.

Known limitations

  • The FACTORY presets are empty. The OS fills them from data written to the +Drive at Elektron's factory, which is in no OS update. Your own presets save and load normally.
  • Other apps don't see an audio device. USB audio goes through a device you choose, not a "Model:Cycles" audio device, so a DAW needs a loopback device.
  • Apple Silicon only, and not notarised. macOS asks you to approve the app once.
  • Tested on macOS 27 only. It is built for macOS 14 and later, but hasn't been run on anything older.
  • Some hardware isn't modelled: battery level, auto-off and headphone detect.

docs/RELEASE.md lists everything left before a release.

How it works

The Model:Cycles has a ColdFire CPU. src/mcboard.c is a virtual board around it: interrupt controllers, timers, DMA, flash, eMMC, the front-panel bus, MIDI, USB and the audio path. A patched Unicorn runs the OS's code on that board, and a SwiftUI app connects the board to your Mac's screen, audio and MIDI.

FolderWhat's in it
app/The SwiftUI app
src/The virtual board and the firmware decoder
tools/Command-line tools and scripts
tests/C and Swift tests
vendor/Unicorn 2.1.4 with this project's changes
docs/Development notes

To run the tests after building:

./test.sh

docs/DEVELOPMENT.md covers the build, every test and tool, and the debug logs.

Licence

GPL-2.0-only, see LICENSE. Third-party code and its licences are listed in THIRD-PARTY-NOTICES.md. This project builds on Modded-Cycles and Unicorn.

Model:Cycles and Elektron are trademarks of Elektron Music Machines MAV AB. This project is not affiliated with or endorsed by Elektron.