Devices Override format description
This document describes the format of the Electra One Performance file. A Performance is a special feature that allows users to create an additional page with a customized selection of controls from an associated preset. Its main purpose is to make it easier for users to gather controls that may be spread across multiple preset pages into a single, easy-to-access page. It also enables the creation of macro controls, modulation of control values, and other performance related tools.
Preset controls are linked to the Performance page using references to preset controls and control values. References can be either:
- Simple references, which point to a single control, or
- Multi-references, which link to multiple control values at once.
Multi-references are commonly used to build macro controls or to apply modulation using Electra One modulation sources (data pipes).
A Performance must always be associated with a preset, it cannot function independently. This association is established by placing the Performance file into the same preset slot as the preset file, and by referencing the preset’s controls through their control and value Ids.
The Performance feature was introduced in firmware version 4.0. As it is a relatively new addition, its functionality is expected to continue evolving and expanding over time.
Devices Override JSON format
JSON schema
The JSON schema of the Electra One Performance file is available at GitHub.
Top level objects
The perforance has three top-level elements.
{
"version": 1,
"devices": [
]
}
version
Provides information about the version of the performance file. Electra One controller uses version information to distinguish between various performance file formats. Note, this document describes performance version 1.
example
"version":1
devices
An array of devices. A device is a hardware MIDI device or software device (application, VST/AU plugin) connected to the Electra One.
- mandatory
- array
example:
"devices": [
{
"id": 1,
"name": "My MKS-50",
"instrumentId": "roland-mks50",
"port": 1,
"channel": 1,
"rate": 20
},
{
"id": 2,
"name": "BeatFX plugin",
"instrumentId": "generic-MIDI",
"port": 2,
"channel": 1
}
]
Device
A device is a MIDI hardware or software instrument connected to one of Electra's ports. It can be a hardware synth connected to a MIDI IO port, a hardware sequencer connected to Electra's USB host port, or a software plugin attached to Electra's USB device ports. Electra can handle up to 16 simultaneously connected devices. When working with Electra, you always need to define your connected devices, you never send or receive MIDI messages from port and channel directly.
example:
{
"id": 1,
"name": "Generic MIDI",
"instrumentId": "generic-MIDI",
"port": 1,
"channel": 1
}
id
A unique identifier of the device. The identifier is used in other objects to refer to a particular device.
- mandatory
- numeric
- min = 1
- max = 16
name
A user-defined name of the device. The name makes it easier for users to remember and identify devices.
- mandatory
- string
- minLength = 0
- maxLength = 20
port
A port number that represents the MIDI bus inside the Electra. Port 1 interconnects MIDI IO port 1, USB Host port 1, USB device port 1. Port 2 interconnects MIDI IO 2, USB Host port 2, and USB device port 2.
- mandatory
- numeric
- min = 1
- max = 2
channel
A MIDI channel where the device transmits the MIDI messages.
- mandatory
- numeric
- min = 1
- max = 16