I am mentioned it elsewhere but as there has been quite some progress I will summarize it here.
The update of the editor to fully support Mini is done in two steps. The first one is already online (app.electra.one). It added a new layout of controls for Mini and resolved some issues from the past. The change in how the editor works internally was huge. And with over 20GB of preset data in the database it caused some friction. But the essentials work now.
Yesterday, I deployed the second part of the update to beta.electra.one. It is a pre-production environment that is connected to the production data (read presets). I am currently testing everything there and making sure it works as it should. There are still some quirks. This second update delivers the final functionality as well it reflects most of what was mentioned here on the forum in the past and recently.
The main idea of the editor updates is to decouple the definition of the controls/groups (values/messages/lua) from their physical locations. To do so, a “layout” layer has been added. it is way to define where controls are located within the preset pages. By having layouts a developer can maintain one sets of MIDI messages, overlays, patch parsing rules, and Lua while having two or more independent layouts of controls.
Until recently, there was this ambiguity about what a preset is and what the project is. They seemed to be the same thing, just organized differently. With the recent update the idea is more obvious. A project maintains all the pages, controls, layouts, lua for multiple target controllers (mini, mk1/2) now. A preset is a subset of the project data compiled for given target hardware controller. This is a change that will bring some benefits to mk1 users too in the future.
how does that work in the real world:
in the latest update (on beta) a user can open two different layouts in the same time:
Controls and groups can be dragged and dropped between the layouts. The drag/drop action will not create a new copy of the control, instead it will create a reference to the original control. The original and the referenced control use the same “reference id”. This is a bit over-simplified but I hope you catch my drift.
If you place a new control on the layout or if you copy/paste controls, a new copies are created, meaning they are their own reference ids..
This way a project may have controls that are used in both layouts (mk1/2 and mini) as well as there can be controls that are used in specific layout only. Lua has access to all controls using their reference ids.
There is also a new “view” called controls:
It is a list of all controls defined in the project across all available layouts.
I will be testing/improving things on beta today. Once I reach the point I feel it is safe use for ordinary users I will update app.electra.one
a few important notes:
- vast majority of projects/presets that do not have fancy dynamic layouts should be really easy to migrate to between the mk1/2 and mini.
- complex presets (such as @jhh @moss and yours) might either needs some doing in terms of Lua being aware of two different layouts.
- the upcoming controller firmware update will allow mk2 to simulate mini and thus run mini presets on it.
- whoever decides to test the update on beta is strongly advised to work with copies of their projects. The updated editor makes changes to the presets that are not backwards compatible. Of course, if you do such change by mistake, you have an option to revert back to the previous revision of the project.
A full overview of editor changes will be provided in a separate post.
It is also important to mention that while Mini is capable of fully running mk2 presets, there are physical restrictions given by the number of knobs, buttons, screen resolution. Having a complex preset that supports both conrollers will require some thinking about the layouts and their restrictions.
The new “4 Fader” control type was meant to provide a hint on what could be done and possible direction to go to get more out of Mini. Currently, it is based on mk2’s standard multi-value conrol with prefixed values. I am quite sure that in the future this could be extended and made more flexible. I already received quite some feedback and idea on that. The points you mentioned are totally in line with that and make perfect sense.
And final remark. As always, I am open to any input from you guys and will use it to shape things up. After all, you spent more time using electra than I do. I have become just a software developer 