Firmware / Web editor beta testing

:heart_eyes:
Hoho !!! so cool !

Hello!

I know the basic functions of the E1, but I often read that many functions that I do not use are very useful and important for others. I would like to know and understand these “functions”. if it’s not even in the topic, but could someone describe to me, “what does the quoted part mean in practice”?

Thx!

Can the position independent ids be edited? It doesn’t appear so. Why not? (And how is an id value determined?)

Also, I have two different controls (both of the same type and with the same label), that both have the same id (ref). That should not happen, right?

Also, groups do not appear to have a position independent ids (the ref files stays empty). It would be helpful to add that too.

1 Like

When I worked on it, I realized two things:

  • an extra optional field would be subject to some constraints (be in 10bit range, strictly unique, extra functions to handle it)
  • it would eat extra memory

It lead me to conclusion it is better to keep track of the control ids when they are manipulated in the preset editor. (originally there were assigned during the export and sending to electra)

Can you send me the preset link? The change has two parts. Implementation of the persistent ids but also a migration of existing preset to a version with persistent ids. Do you get that problem with a new preset you created from scratch or a did you work with an existing preset?

It was an existing preset. This is the link Electra One App

I see. So you reuse the original “id” field. I guess I can always manually edit the mixer preset to fine tune the id assignments.

yup, that will work. I just opened your preset and I am going to review what happened there. The ref ids look weird indeed.

edit:

@jhh, hmm, I cleared the references from the .epr file and imported the project to the app again and all refs ids are fine and unique. Do you have the same issue with other presets you opened on beta? And haven’t you made any manual edits to that preset in the past?

E1 Lua extension (scripting language) allows preset developers to dynamically change behaviour, visibility, attributes of controls programatically. Control identifiers (ids) are used to look up particular controls. Till now these ids were based on the location of the control within the the preset. That meant that moving the control to different location could break the Lua program behind that. From now, the ids are completely separated from the location of the control.

4 Likes

Would love to test, but now clicking the edit button does nothing…

  • The controls and groups now use position independent ids

And with :

  • hidden controls are disconnected from the pots

It means that i can hide fader named A on the same position as one other named B and that i can hide B and unhide A depending the state of a third parameter .
For exemple : I have the Arpegiator from Ableton that can be in sync with the BPM or FREE (in ms or s)

The device on Ableton shows, depending of the sync state of the arp , the Quantized time or the Free time .
Now i can reproduce that on the E1 .
…and i have a question . Can we have more id than the number of parameters on the E1 ? I suppose it depends on the numbers of values monitored ? then not more than 432 ?
In my exemple above i “add” one more parameter took somewhere else in the total of 432 ?
Then i suppose to that somewhere else in the preset i will have a “blank” field ?
Then my last question does the 432 parameters can be overide ? Not now but hypotaticaly ?

Still , what you already did is really great ! i will wait the official release to test all this but i am more and more excited about that !!!

Thanks @martin for all this ! The E1 is a dream unique midi controller ! and i tested a lot of them ! you are making the best Hardware midi Controller i know on the market ! faaaaaar from all other in mater of customization ! I am really happy to have one !

:partying_face: :heart_eyes: :star_struck:

2 Likes

Editing works again. Good.

I imported the Ableton mixer and that worked fine (the ids essentially stayed as is for the controls; for the groups however, the first group gets reference number #433).

When exporting the preset (to fix the group references back to 1,2,3 ) and importing back in however the group references get changed to 443, 444 etc.

So - if I download the project, manually edit the id’s in the order I want, then upload it, will any bad things happen to me? lol

Reason for asking is this – I am working on something that addresses 8 tracks and I typically set things up in 2 rows of 4. When I want to change titles, set values, etc., across all 8 tracks, it would be convenient to be able to just do a single “for” loop across a range of IDs.

Alternately - is there a better way for one control/LUA script to set stuff across other controls on the same page?

EDIT - I’m confused. I downloaded the preset and it had the old style 2 digit IDs.
I downloaded the project and I see the new long ID and also a slot ID. I’d love to be able to access slot IDs to do what I want.

How do I pull those back?

EDIT 2 - if I do a controls.get(ID), the ID I supply is the slot ID? (1-432)
This will continue to work?

small note - the CONTROL_SET_1 - 3 defined constants are not quite right. _1 actives the second set; _2 activates the 3rd set and _3 activates the 1st set.

1 Like

Is there a way to get some kind of callback when the user changes pages?

I’d love to have an “update stuff” hook that I can set up to be called when a page change occurs.

yes

Page switch

Informs the host that the user changed the active page.

0xF0 0x00 0x21 0x45 0x7E 0x06 page-number 0xF7
  • 0xF0 SysEx header byte
  • 0x00 0x21 0x45 Electra One MIDI manufacturer Id
  • 0x7E Controller event
  • 0x06 Page switch
  • page-number Current page number (0 … 11)
  • 0xF7 SysEx closing byte

https://docs.electra.one/developers/midiimplementation.html#page-switch

2 Likes

@Martin Is it true that visibility of controls is erased (i.e reset to true) whenever switching away from (or switching back to) the preset?

1 Like

yes, that is correct. At this moment, electra does not keep/save state of the preset when you switch between them. I keep it on the list as it would be useful in some situations - as an optional feature.

2 Likes

I think @oldgearguy probably meant a Lua callback. There is not such a callback now but makes sense to add it. In general, it makes sense to have Lua callbacks available for all events when SysEx event notification are sent (like the page switch that @Abbes mentioned)

I will get back on this later today / tomorrow.

I solved my local issue by simply opening up a new project in another browser tab and creating the objects in the order I wanted.

Summary of the result is that I can sequentially address a group of objects with a simple “for” loop no matter where they are placed on a page, which is exactly what I needed.

1 Like