Getting to know the Electra One

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.

What does it do?

  • Sends out MIDI messages based on user actions or programmatically.
  • Receives and visualizes incoming MIDI messages.
  • Routes and merges MIDI messages between USB device, USB host, and MIDI IO ports.
  • Composes and parses System Exclusive messages in real time.
  • Runs Lua scripts to generate and process MIDI data, and hooks Lua functions to all event types.
  • Saves, morphs, randomizes, and recalls snapshots of preset values.
  • Records and replays SysEx messages.

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

This is the most straightforward type of connection. In this scenario, the Electra One typically runs a preset that covers all parameters of the connected synthesizer, providing instant control over all sound settings.

It's also possible to create presets that extend the functionality of the connected device — for example, by adding extra MIDI LFOs or other features using Lua scripting.

DAW and VST/AU controller

In DAW-based setups, the Electra One is used to control the DAW, for example, channel strips and the parameters of VST/AU plugins.

There are two ways to achieve this: either by manually mapping individual DAW and plugin parameters, or by using controller integrations such as the Electra One Ableton script and Electra One Bitwig integration.

Multiple MIDI devices

This setup is typically used on stage or in live performance environments. The Electra One preset consists of controls from all connected synthesizers. A common example is having all filter cutoffs and resonance controls on a single page for easy, simultaneous tweaking.

Since switching between presets is quick and seamless, you can create Electra One presets tailored to specific sets or songs.

Hardware gear and computer

This is a variation of the previous setup and is useful in both studio and live performance environments. The key difference is that your Electra One preset controls sound parameters within your DAW and/or runs a DAW controller script.

Hardware synthesizers can be controlled either directly by the Electra One or via MIDI messages routed through the DAW.

MIDI router based setup

Using a MIDI router is the most flexible and convenient way to integrate the Electra One into complex setups. It allows you to fully manage the flow of MIDI messages between the controller and your gear. Naturally, a MIDI router does represent an additional cost.

The Electra One has been successfully used with iConnectivity routers, Blokas Midihub, MRCC, and the BomeBox.

Where do I find presets?

The Preset library

Electra One includes a cloud-based service for creating, editing, and sharing presets. A key part of this service is the Preset Library — a user-friendly tool for browsing available presets and uploading them to your Electra One controller. You can also use it to manage your own presets.

Users can choose whether or not to share their presets — it's entirely up to you. Typically, presets that cover the MIDI implementation of a specific synthesizer are shared publicly, while those tailored to individual studio setups remain private.

Each preset may come with a description and instructions about how to use it and how the connected MIDI device needs to be configured. The information is provided by the preset author. We encourage our users to fill it in. It is super handy to have such information available when using the preset for the first time.

The preset description often includes links to User Guides, manuals, and the MIDI Implementation documentation. In a way, the Preset library is also a neat reference place for your favorite gear.

Managing the controller

Besides the Preset library, you can use the online service to manage presets and configurations stored in your controller and run firmware updates of the hardware controller.

Easy, fast, and safe firmware updates are our priority. We listen to our users, and we keep adding new features and release bug fixes often. The Preset library keeps you informed about new updates. And updating your controller is a matter of a single click.

There is more to tell about the Preset library, but for now, you should have a good idea about what it does by now. Let's move to the second bit of Electra One cloud service - the Preset editor.

How do I create presets?

Easily. Creating basic presets is matter of minutes spent in the MIDI learn panel and drag and dropping the controls to the preset.

The Preset editor

The word "basic" might be a bit misleading. We talk here about presets that send out Control Changes, Notes, AfterTouch, and all other MIDI message types. Of course, such a preset will also track values according to the incoming MIDI data.

Preset controls are organized by placing them on pages, assigning them to categories, and changing their colors. Everything is well organized. You will not most likely need to look at the User guide.

Preset also allows you to define up to 32 MIDI devices to communicate with, to set their MIDI ports, channels, and assign controls to them.

Whenever you upload a preset to your Electra One controller or when you save it, a new revision of the preset is stored safely in our system. This gives you a chance to restore older versions of your work later when you need it.

You are not limited to basic functions only. With the Electra One you can go much further. Composing System Exclusive messages and parsing incoming patch dumps is the next step. The most advantageous user can use Lua scriting to take full control over the controller.

The Patch editor

The Patch editor is quite a unique tool. You can use it to describe the protocol of exchanging the System Exclusive messages with MIDI devices. This is done by defining the data requests and the data responses.

Once the requests and responses ared defined, you can interactively communicate with the MIDI device and observe the incoming messages. The Patch editor will automatically mark changing bits and bytes, allowing you to locate the parameters in the stream of the MIDI data. Assigning the parsed values to the preset controls is just a matter of a few mouse clicks.

The Patch editor can be effectively used for reverse engineering of undocumented System Exclusive MIDI implementation.

The Toolbox

There is a Toolbox with several handy tools to work with Lua and the MIDI message. The Toolbox is a companion to the Preset and Patch editor. The purpose is simple: to make working with Electra One more efficient, easier, and fun.

The Lua editor

Edit the Lua script directly in the Preset editor. The editor is a programming-grade tool with syntax highlighting, code folding, and many other features.

The debugger log window underneath the editor shows info about what is happening in the controller.

The Lua debugger

A command prompt to enter Lua script commands and snippets to be executed interactively on the controller.

The Lua debugger gives you an easy way to develop, test, and debug your Lua scripts efficiently. The log window above the command prompt provides info from the controller.

The MIDI console

Communicate with your gear interactively by sending and monitoring MIDI messages. MIDI console accepts MIDI commands in syntax inspired by the Sendmidi tool in raw dec/hex format.

Received MIDI messages can be analyzed, saved to files, and copied to the Patch editor.

What types of MIDI messages are supported?

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.

System common messages, such as Tune request, Reset, and Active sensing, can be sent and processed with Lua functions.

  • Control change
  • NRPN and RPN
  • Program change
  • Channel pressure
  • Polyphonic pressure
  • Note on and off
  • Pitchbend
  • Start, stop, and continue
  • Midi clock
  • Song select and Song position pointer
  • System Exclusive

What can I do with the Lua script?

You can do a lot with the Electra One Lua script. It pretty much depends only on you and your skills. You can do simple things to spice up your presets, such as formatting values on the display, or you can develop transcient generators, handle complex SysEx communication, and much more.

The Lua script can be used to control the Electra One user interface, too. You can rearrange controls on display based on values of parameters. That means your presets may show only relevant controls. Changing colours or text lables? All that is just a matter of a few Lua commands.

Electra One Lua comes with a powerful concept of the Parameter Map - a reactive MIDI parameter data store. Just save your values to the Parameter Map and Electra One will take care of displaying and refreshing all visual data everywhere.

You may ask why Lua? The answer is simple it is fast. Speed of processing and fast responses are the highest priority of the Electra One project. Lua perfectly fits that goal. Do you need to process or generate data with every MIDI clock message? No problem, Electra One Lua will handle that just fine.

Last but not least - it is fun. Many of us used to play around with programming when we were young. We gave up, however, as world of serious programming is moving too fast. The Electra One Lua script is intended to provide easy to grasp programming techniques tailored to controlling your MIDI gear.

Learn more about Lua at The official Lua site.

MIDI

A complete suite of functions to send out and process all types of incoming of MIDI messages.

Controls

A library to manage visual representation of the parameters - Controls. Move them around, change dynamicaly their colours, text labels, and visiblity.

Callbacks

A set of callbacks to handle all sorts of Electra One events. Trigger bits of your own functionality when presets are loaded, pages switched, buttons pressed.

Transport

Handle MIDI start, stop, continue events with ease. Run your function at the rate of extrenal MIDI clock.

Timer

A collection of functions to run Lua at user given rates, defined in time intervals or BPM.

Patch

Request and process SysEx messages from connected MIDI devices. Parse incoming MIDI data and populate parameter values.

Graphics & touch

A collection of tools to create your own custom controls, draw graphics, and handle touch events.

Visit Electra One Lua Extension Guide to see complete information about programming Electra One Lua.