Let us introduce you to the Electra One. The following sections will guide you through the features of our controller and its companion software tools. While the Electra One is often referred to as a MIDI controller — and rightly so — it is also much more than that, it is a complete hardware platform for your MIDI.
What does it do?
Sends out MIDI messages based on user interactions or programmatically.
Receives, visualizes, and keeps track of all incoming MIDI messages.
Routes, merges, and transforms MIDI messages between USB device, USB host, and MIDI IO interfaces and their ports.
Composes and parses System Exclusive messages in real time.
Runs Lua scripts to generate and process MIDI data, handle user interactions, draw graphics and fire Lua functions on various types of events.
Saves, morphs, randomizes, and recalls snapshots of preset values.
Records, edits, loops, syncs, and plays MIDI recordings.
Can be fully controlled remotely by external MIDI controllers and, over a documented SysEx API, by programs on your computer.
Where does it fit in my setup?
There are countless ways to integrate the Electra One into your setup. It all depends on your workflow and the gear you use. To give you an idea, here are a few examples:
A synth programmer
Give one synthesizer a full set of controls. Every parameter you would dig out of a menu sits under a knob, with its name and value on the display, and a patch request reads the current sound back so the screen matches the instrument. Lua adds what the synth lacks, such as a MIDI LFO.
Bring the controls that matter from several synthesizers onto one page: the filter cutoffs, the resonances, the effect sends. Each device keeps its own port and channel, so one preset addresses all of them. Build a preset per song or per set and switch on the controller, with no computer in the chain.
A larger routed system
Mix hardware instruments and a DAW in one setup, with controls for both in the same preset. Electra One routes MIDI between its DIN, USB Host, and USB Device ports itself. When a rig outgrows them, a router such as an iConnectivity, Blokas Midihub, MRCC, or BomeBox adds more sockets.
A DAW and plugin controller
Put channel strips and plugin parameters under real knobs. Map them by hand, or use a ready integration: the Ableton Live script, DrivenByMoss for Bitwig and Reaper, or Orestes-One for VCV Rack. Names and values show on the display, and a change made in the DAW moves the value on Electra One too.
A Lua programmable MIDI router
Put Electra One between DIN synths, USB Host instruments, and the computer. Static routes forward messages in about 0.2 ms, whatever the screen is doing. A Lua router script decides for every message where it goes: split a keyboard into zones, remap channels, or send notes round-robin to mono synths.
Place Electra One between a controller and a synth. Every note passes through a Lua script on the way, so a plain keyboard can give each note its own channel as MPE synths expect, gain an arpeggiator or echo, or be split across instruments. Lua also generates MIDI of its own: step sequences and MIDI LFOs.
The editor creates presets. The controller runs them with no computer attached.
Presets are made in the Editor, which is either a web application you open in a browser or a program you install on your Mac, Windows, or Linux computer. You need it to build a preset and to send it over, and that is where it ends: once the preset is on the controller it stays there, and Electra One plays its part in your setup on its own. Nothing has to be running on a computer, and the computer can be taken away entirely.
The online editor is always free. Start in Basic mode and switch to Expert mode when you want the Patch tab, the Lua editor, and the message details. Arrange controls by drag and drop, or turn a knob on the instrument and let MIDI learn write the control for you, SysEx included. If you are the technical sort, the rest is in the same package: Lua with a debugger that runs on the live controller, a console for the log, the MIDI on the wire, and what a script costs while it runs, and a Patch tab that takes an instrument's SysEx apart bit by bit until an undocumented protocol gives up its parameters.
The offline Editor for Mac OS, Windows, and Linux keeps your library on your own computer, needs no account or connection, and adds unlimited preset size, folder watching for external editors and Claude Code integration. Try it with a 30-day trial, or use the always-free online editor.
Electra One understands your instruments
A generic controller sends a message when you turn a knob and knows nothing else. An Electra One preset knows the instrument: which parameters exist, their ranges and units, how each one is encoded, how to ask for a patch and read the answer, and which controls belong together. The display shows the parameter's name and its value in the instrument's own units, and the knob under it is endless, so the value never jumps when you touch it.
That knowledge sits apart from the knobs. Electra One keeps the current value of every parameter in one place, and everything writes to it: a knob, an incoming message, a script, a snapshot, a remote surface. The controls on screen are only views onto those values, so one preset can carry a layout for mk2 or for Mini, and a script can show, hide, move, or redraw controls while the values underneath stay put.
Both directions, all the time
Every control also listens. Turn the cutoff on the synthesizer itself and the control on Electra One follows. Load a different sound and a patch request reads the whole patch back, so the screen always shows what the instrument is really doing.
Control types
Nine of them, most with variants, and a Custom control is a blank area the preset's Lua script draws on. A page holds up to 36 controls on mk2 and mk3 and 8 on Mini, and a preset up to 432 controls in all. The Concept of Control in the documentation goes through each of them.
FaderListPadEnvelopeXY PadVertical fadersRelativeText boxCustomBipolar faderDialThin faderList valueCheckboxMomentary padValue pad
When none of them fits
Instruments have things on their panels that no fader, list, or pad stands for, and a number on the screen tells you nothing about what the instrument is actually doing. That is what the Custom control is for: a blank rectangle the preset's Lua script paints, with the knobs, the touches on them, and the touches on the display going to the script as well. The parameter and the MIDI message underneath stay as they were — only what you see and what you can do with it change.
Write one in Lua, or describe what it should look like and let an AI agent write it, upload it, and watch the screen until it is right. A custom control, step by step
Devices, ports, and routing
Electra One has three interfaces: MIDI I/O connectors, USB Device for connecting to a computer, and USB Host for instruments and controllers connected over USB. The upcoming Electra One mk3 adds an Ethernet port for RTP-MIDI, OSC, and MIDI 2.0. Each interface carries two ports, and each port runs across all interfaces simultaneously, effectively acting as a bus. Messages can be freely routed between the interfaces and ports.
Static routes
A routing table says which interface and port a message is passed on to, and merging, filtering, and channel changes are set in the same table. Forwarding happens apart from everything on screen: a message leaves about 0.2 ms after it arrived, in order, even while a page of faders is repainting. It is never taken away from the preset either, so a synthesizer's knob can move a control on Electra One and be recorded by your DAW at the same time.
Router scripts in Lua
A preset can carry its own routing engine: a Lua script that sees every message and decides where it goes and what changes on the way. Split a keyboard into zones, layer two synths, remap channels, transpose, rescale velocity, allocate notes round-robin across a chain of mono synths, or delay and re-time messages. It too runs apart from the rest of the preset, so a busy screen never holds it up.
When a rig outgrows the sockets, an external router such as an iConnectivity, Blokas Midihub, MRCC, or BomeBox adds more. Electra One then sits on one of its ports like any other instrument.
All of them and in both directions. Electra One can send out any type of MIDI message, as well it will act upon receiving all of them.
The MIDI messaging is managed with a user-friendly editor, keeping all the technical difficulties away from you.
System Exclusive messages may have variables and custom Lua functions injected. Data can be extracted from incoming System Exclusive messages and transformed into parameter values.
Checksums in the Roland, Waldorf, and Fractal Audio styles are worked out for you, and a patch request reads a whole dump back: rules in the preset say where each parameter lives in the answer, whether that is a whole byte, a few bits of one, or several bytes combined into a single value.
System common messages, such as Tune request, Reset, and Active sensing, can be sent and processed with Lua functions. Clock and transport go further than being forwarded: Lua functions can be hooked to start, stop, continue, and the clock itself, which is what sequencers, arpeggiators, and MIDI LFOs on the controller are built on.
Control change, including 14-bit CC and relative encoders
NRPN and RPN
Program change
Channel and polyphonic pressure
Note on and off
Pitch bend
Start, stop, and continue
MIDI clock
Song select and song position pointer
System Exclusive
Tune request, reset, and active sensing through Lua
MIDI 2.0, spoken on behalf of instruments that never will
Electra One answers MIDI 2.0 as itself. A MIDI 2.0 host asks what is on the other end of the cable, and the controller replies with the preset that is loaded: every parameter in it, by name, with its range and the value you can read on the screen. There is nothing to set up. Load a preset and it is published.
That is worth the most to the instruments that will never get a firmware update of their own. A DX7 does not speak MIDI 2.0 and never will. Its preset here does, so a host that knows nothing about the synthesizer can still list its parameters and change them, and the controller turns each change into the messages that instrument has always understood, SysEx included.
Every value carries one address, the same one whether a host asks over MIDI-CI Property Exchange or over OSC, and it holds even if you rename the control later. A Lua script can answer resources of its own beside the ones the firmware answers, or appear on the port as a second device with an identity of its own.
Lua: the part of the preset that behaves
A preset is a description: pages, controls, devices, and the messages they send. You need no code for ordinary mappings. Lua is where a preset gets behaviour of its own. The script runs on the controller itself, in Lua 5.4, in a state of its own for every preset slot, and it responds to events: a control changed, a message arrived, a page opened, a clock tick passed.
That is enough to build a synth programmer for an instrument that never had one, with a macro that moves a dozen parameters at once and a MIDI LFO running behind it. It is also what makes an interface fit the instrument. Pick an oscillator and the knobs take on its parameters. Choose a filter type and the controls that do not apply disappear. A script can create and remove controls, change their labels and colours, and draw controls of its own, without disturbing the values underneath.
It is also enough to make the controller something else entirely. A step sequencer with a piano roll drawn on the display, loop points, and every port along the top. An arpeggiator that follows MIDI clock. A router that gives every note its own channel for an MPE synth. A filter designer whose response curve is drawn by the script.
Timing stays with the firmware. A timer keeps its period in microseconds and never drifts, a scheduled message leaves on the millisecond it names whatever the script is doing, and captures written by a script play as precisely as recorded ones. Snapshots store whole parameter states to recall, morph between under a knob, or randomise within a range. From firmware 5 a preset can carry test files that the controller runs on demand, so a change that breaks something settled earlier is caught in seconds.
The course is written for musicians, not programmers. And you do not have to write the code yourself: describe what you want and an AI agent reads the documentation and your instrument's MIDI specification, writes the preset, uploads it, and watches the screen, the log, the MIDI traffic, and the test results on the real controller until it works.
A step sequencer preset. The piano roll, the transport, and the port labels are all drawn by the preset's Lua script, and it runs on the controller with the computer unplugged.
Send and receive any message on any interface and port, with callbacks for what arrives.
Bytes and SysexBlock
Build SysEx byte by byte and read a received block without copying it.
Controls, Values, Messages
Change a control's label, colour, position, visibility, and the message it sends.
Pages, Groups, Overlays
Rearrange the layout and the option lists while the preset runs.
Devices
Read or change the port and channel an instrument sits on.
Parameter Map
The shared table of values that knobs, MIDI, and scripts all write to.
Patch
Request a dump and parse the answer into parameters.
Presets, Events, Info
React to a preset loading, a page change, a button, or the system.
Timer, Schedule, Transport
Run code on a fixed period, at a chosen millisecond, or on MIDI clock.
Data Pipe
Pass values between presets running in different slots.
Snapshots and Captures
Store, morph, and recall parameter states; record and play back MIDI.
Graphics and Window
Draw a custom control on the display.
Controller
Read the model, firmware, and ports of the hardware the script runs on.
OSC and DMX
Send and receive OSC over the network on mk3; drive DMX with an interface.
MIDI-CI
Answer Property Exchange as the controller, or as a MIDI-CI device of your own.
Helpers, JSON, Logger
Format values, keep data between sessions, and print to the log.
Router Lua
A second, faster environment: a script that decides for every packet where it goes.
DAWs, plugins, and software instruments
A DAW is a device like any other: map its parameters by hand over MIDI, or use an integration written for it. Each one is maintained by its author.
Ableton Live
The Electra One MIDI Remote Script controls the session mixer and the selected device, generates presets for Live's own devices automatically, and ships over 100 of them ready made.
Bitwig Studio and Reaper
DrivenByMoss navigates tracks and devices, controls project and device parameters, and shows their names on the display.
Reaper plugins
KnobConnector organises instrument and effect parameters into a navigable control surface.
VCV Rack
Orestes-One maps Rack parameters with two-way feedback, automapping, module navigation, and smooth 14-bit values.
Haken EaganMatrix
The Continuum Controller preset gives mk2 hands-on access to parameters, macros, and preset management for supported Continuums and the EaganMatrix Module.
The integrations guide covers what each one controls, where to get it, and how to set it up.