It is the web editor on app.electra.one that forces users to use 6x6 grid. The editor uses the grid because it establishes a strong relationship between on-screen controls and physical knobs.
The hardware controller is not limited to the grid, it supports placement of controls by defining their x, y position and width, height. Also, any control can be linked to any knob, more knobs, or none of them.
I’d say, if you wanted to experiment, generate a preset with a few pads. Export the JSON and play around with the bounds
object in the preset. Note, it is all fully documented at docs.electra,.one.
You can upload your own presets to E1 using the Sandbox tool.
just made a quick test:
This is the preset source:
{
"version":2,
"name":"My Preset",
"projectId":"ury8UbVL4PrzDL3q6eLq",
"pages":[
{
"id":1,
"name":"Page 1"
}
],
"groups":[
],
"devices":[
{
"id":1,
"name":"Generic MIDI",
"port":1,
"channel":1
}
],
"overlays":[
],
"controls":[
{
"id":1,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"ffffff",
"bounds":[
20,
28,
56,
56
],
"pageId":1,
"controlSetId":1,
"inputs":[
{
"potId":1,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":1,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":2,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"ffffff",
"bounds":[
96,
28,
56,
56
],
"pageId":1,
"controlSetId":1,
"inputs":[
{
"potId":2,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":2,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":3,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"ffffff",
"bounds":[
172,
28,
56,
56
],
"pageId":1,
"controlSetId":1,
"inputs":[
{
"potId":3,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":3,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":4,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"ffffff",
"bounds":[
248,
28,
56,
56
],
"pageId":1,
"controlSetId":1,
"inputs":[
{
"potId":4,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":4,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":5,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"F49500",
"bounds":[
20,
118,
56,
56
],
"pageId":1,
"controlSetId":1,
"inputs":[
{
"potId":7,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":5,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":6,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"F49500",
"bounds":[
96,
118,
56,
56
],
"pageId":1,
"controlSetId":1,
"inputs":[
{
"potId":8,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":6,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":7,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"F49500",
"bounds":[
172,
118,
56,
56
],
"pageId":1,
"controlSetId":1,
"inputs":[
{
"potId":9,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":7,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":8,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"F49500",
"bounds":[
248,
118,
56,
56
],
"pageId":1,
"controlSetId":1,
"inputs":[
{
"potId":10,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":8,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":9,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"529DEC",
"bounds":[
20,
208,
146,
56
],
"pageId":1,
"controlSetId":2,
"inputs":[
{
"potId":1,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":9,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":10,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"529DEC",
"bounds":[
187,
208,
146,
56
],
"pageId":1,
"controlSetId":2,
"inputs":[
{
"potId":2,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":10,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":11,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"529DEC",
"bounds":[
354,
208,
146,
56
],
"pageId":1,
"controlSetId":2,
"inputs":[
{
"potId":3,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":11,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":12,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"529DEC",
"bounds":[
521,
208,
146,
56
],
"pageId":1,
"controlSetId":2,
"inputs":[
{
"potId":4,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":12,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":13,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"F45C51",
"bounds":[
20,
298,
146,
56
],
"pageId":1,
"controlSetId":2,
"inputs":[
{
"potId":7,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":13,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":14,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"F45C51",
"bounds":[
187,
298,
146,
56
],
"pageId":1,
"controlSetId":2,
"inputs":[
{
"potId":8,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":14,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":15,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"F45C51",
"bounds":[
354,
298,
146,
56
],
"pageId":1,
"controlSetId":2,
"inputs":[
{
"potId":9,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":15,
"deviceId":1
},
"id":"value"
}
]
},
{
"id":16,
"type":"pad",
"mode":"toggle",
"visible":true,
"name":"",
"color":"F45C51",
"bounds":[
521,
298,
146,
56
],
"pageId":1,
"controlSetId":2,
"inputs":[
{
"potId":10,
"valueId":"value"
}
],
"values":[
{
"message":{
"type":"cc7",
"offValue":0,
"onValue":127,
"parameterNumber":16,
"deviceId":1
},
"id":"value"
}
]
}
]
}
so, it is all good. Unfortunately, when you import such preset to the web editor, it will enforce the 6x6. Which will break the positioning. But not much work is left on getting this restriction out of the editor.
Of course, I have my ideas about the sequencer preset,. My thinking on that is:
Use the upper four rows of controls for the grid of pads, say 4 x 16 and the bottom part for 12 controls that would be used to manage the sequencer and edit the pads (notes, messages, etc). That way these 12 controls would be permanently assigned to the 12 knobs. Touch on pads would be used to select active pads that would be subject to modification. Just an idea 