Hi all, glad to join the community. Was lucky to grab an E1MkII used, in pristine condition. After a few hickups, updated the bootloader to 1.1 and the fw to 4.1.4, and diving into creating presets (starging slow and simple, just some standard controls).
Bumping into some noob issues along the way, so please don’t laugh at me if answers are obvious for someone with greater experience)
- I am following the user guide, create my preset, and the first thing I run into is I can’t create a dial control for the life of me!)
I can create a standard bar, a slim bar, but when I switch to DIAL, it jumps back to standard. Where am I missing smth?
- Relative control - not reacting to touch, is it by design?
I was experimenting by adding various types of controls to a test preset, and when I added the Relative control, I noticed, that, unlike other types I tried (Fader, Options List, ADSR), I can’t operate this control by touch, and when I touch and hold this control on the screen - nothing happens. Is this normal?
- When I press and hold a fader control on the screen, it gets bigger, and I can see the bar on the full screen, while turing the assigned encoder. As soon as I release the encoder - the fader control snaps back to minimised form. What a great and clever thing! But can I make it somehow to pop up automatically when I start twisting the knob? So that I have my normal preset layout, and when I twist a knob assigned to a fader (or an option list, or any type of control, for that matter), this control “pops up” to full screen? For those of us of a “certain age”))) having sight issues, this is a killer feature.
I am sure I will have a zillion more questions, is there a better place to ask such noob questions than the General Discussion? Advice appreciated!
IIRC dials are not (yet) implemented on mk2. Only on mini.
1 Like
Ah, that’s good to know, it’s not me being stupid then ))))
All good questions. Never worry to ask . This is a great community that reacts favourably to all that are interested.i’ve developed some presets and even then you’ll notice we all learn every day from each other.
Question 1: indeed the dial is not implemented on the Mk1 or Mk2,onlyon the mini. For compatibility reasons, you can select it though. I believe it won’t be implemented on the Mk1 because of resource constraints.Whether it will be foreseen on the Mk2, I honestly don’t know.
Question 2: I’ve never used the relative controls before, but it seems obvious to me it doesn’t respond to touch: what should it do, go one up or one down? Three suggestions: did you try swiping left and right to get a different response? Second: you could use a pair of toggle controls instead giving the same behaviour.3. A bit more complex: create a custom control where you can press left and right.
Question 3. Great question and use case but I really don’t know the answer
1 Like
Thank you so much for taking the time to reply! I understand how deep the learning curve is to master the Electra One. I was actually thinking about getting the Mini, but this second hand offer popped up and I could not resist.
Maybe I pulled the trigger a bit too early, now that the development of the Electra One MkIII has been announced, but hey, you can’t wait forever for all the new things to appear, as there will always be newer things)
A couple of more questions, if I may:
- the action to touch the encoder on the Electra One - is it user-assignable in any shape or form? I’ve read that the Mini has encorders with push switches that are user-assignable, and for some reason I though I could do something similar with the capacitive touch on E1, but don’t seem to be able to to it. Is it not mappable?
- Text overlays for faders: a very useful function, but is there a way to assign the overlay to a range of values? I don’t seem to find such option. Let’s say, I want my fader to say ABC for every value between 0 and 63, and XYZ for every value between 64 and 127. Is there a way to achieve this, other than creating 127 text overlays?)
Both times yes. Be aware I’m not behind the instrument right now, so I can only give you overall responses.
For the touch: there is an …onTouch callback function that allows you to do whatever you want to see happening when touching encoders. Make sure you invoke the ‘subscription’ on the touch callback for it to work.
As for the fader (or list) control overlays, there are 3 ways I use frequently, there may be more:
- you create an overlay for each fader. Very handy, but tedious when the fader has a lot of values.
- You use a formatter: this is the best choice when the build up of the string to show has a relationship to the underlying values that is easy to program . This a by far the easiest. Your example would need like 4 lines of lua to make it happen
- You create the overlays dynamically in lua based on context. Comes in handy for e.g. FX parameters where the same parameters changes in range , name and overlays depending on effect type. An example which went far down that road is the Zoom MS70 CDR pedal preset. I used a combination of overlays and formatters to cope with the endless ways Zoom implemented these FX parameters.
- last thought: mentally make distinction between a “parameter” which is to be considered as part of the memory (map) where you store values, and a “control” which is a visualisation tool, meant to show and change values. In simple presets you typically tie them together: one control for one parameter. These controls will then typically be of a standard MIDI type, like CC or NRPN. But in more complex situations you will want to segregate them from each other, so control visualisation and the parameter memory map can be maintained independently. This will happen on for instance effects parameters in synths, or when a synth is multitimbral and you like to reuse each control for any chosen timbre. In such case, using virtual parameters for a control is a better option.
1 Like
Thank you so much!
I don’t want to abuse your kindness and willingness to answer such basic questions, is there a guide/tutorial somewhere that you could recommend?
Something in between the basic User Guide on the Electra’s website (which is a great start, and I went through it) and a full-blown LUA madness that I will need to find enough courage to dive into ))?
1 Like
Honestly? I didn’t learn by going through tutorials, but more by working goal based.
The tutorials you should cover first is not on the Electra One itself . Foremost :
- how good is your understanding of MIDI ? CC? NRPN ? Clock ? SysEx ?
- how good is your understanding of lua in general, so not specific to the E1?
Once you can say to yourself, “reasonable” , then the next question is: what is it you want to do with it?
For me personally it is and was about:
- providing older 80’s and 90’ synth hardware, typically deprived of buttons and faders themselves, of an interface to control them physically and make them musically attractive
- parsing synth data so I can visualize how sounds are made and learn from it
- adding features to synths they don’t have themselves, like additional lfo’s, mod matrices, clock sync
With these goals in mind, I then select a synth (an easy one to begin with), read the synth’s MIDI (CC ànd SysEx) capabilities found in their MIDI implementation guides, then set for myself how I’m going to use Electra One to control it. Usually there are new things I want to try, so then I resort to two main sources:
- I check the lua guide for the E1 (it is the “lua extension” beneath the “developers guides” Lua extension | Electra One Documentation) to find out what function or callback could be useful for what I’m about to do
- I ask the forum (like you do) for ideas, tips and tricks and this helps a lot
I made a kind of guide on parsing synths, which can be found in the forum. It’s not perfect, but can be of help if that is what you want to do: Adding patch parsing to a preset. Step by step
Also relevant is having a MIDI monitor (like MIDI-Ox) so you can see the communication going on between the Electra One and the Device you try to control. That ensures you are not working blindly.
2 Likes
Thanks again for such a helpful reply.
I have a basic level of understanding about how MIDI works, I can program medium complexity patches on some popular midi controller platforms (Morningstar, Pirate MIDI, Luminite FX).
I don’t have any knowledge about the LUA yet.
My goals are much simpler than what you described. I have a few guitar effects that are MIDI-programmable, and I want to create a convenient and visually helpful way of controlling them.
So for the time being it’s about a unidirectional MIDI communication between Electra and external devices. My goal is to create a preset in Electra, that would give me the control I need with the visual layout I want.
So my all my initial questions are in the area of how to program E1 itself - how to make knobs do what I want and display what I need them to display.
Some of those questions are very basic, but I couldn’t find answers in the guides I read so far.
Can I have a knob send two CCs at a time, when I twist it? Can I have Electra send some MIDI commands when I select a page in the preset? Can I have Electra send some MIDI commands when I load a preset (other than default values of visible controls), etc.
Working with MIDI feedback from controlled devices is the next step, I am not ready yet))
1 Like
I suspect you will soon find that you will need lua functions to do things beyond the basic. I learned lua on the E1 by searching through other users presets for the function I needed. Especially @NewIgnis and asking questions here.The lua developers guide for E1 is very useful and worth having open as you edit. I believe several developers are using AI to write E1 lua scripts too. Good luck on your journey.
2 Likes
Also, if you post a “how can I do this function?”, folks may either have a preset showing how or someone can whip up something.
Usually the example will not have the specific system exclusive or CC messages, but the Electra part can be understood and reused.
2 Likes
Thank you all guys, what a great and responsive community! )
I’ll take some time to digest the LUA Crash Course, and see where it gets me.
1 Like
Hopefully the open source version will be released soon. That will allow:
- Understanding what you can do in code (less need to rely on outdated documentation and scattered forum notes that drift into obsolescence).
- Accelerate the development of missing features
- Like click events mentioned above … which seems small, but …
- Easing of limitations, and approaching parity across (modern) hardware versions.
- Hopefully there is a group that can approve pul requests to avoid lots of forks and putting more pressure/work on Martin.
- Accelerate the improvement of the documentation that tracks better with firmware updates (even if it’s on a fork).
- Take a lot of pressure off of Martin!
Would be great to release a non-forkable, read-only version (maybe not open sourced) … before a full, open source release. That would greatly help with the outdated documentation with minimal effort/risk.
1 Like
I tried to digest the LUA Crash Course, an excellent document, but, if I understand correctly, it’s not finished yet.
So I will try to follow the recommendation and ask “how can I…”)))
- How can I make one encoder to control several parameters at the same time?
Can I put two (3? 4?) Fader controls on the layout, and have one encoder move them at the same time? If so - can I fine-tune the way the knob controls each of those parameters?
Something similar to programming several CC commands to an expression pedal - the concept that is clear to me, because I’ve done it many times with controllers like Morningstar, Pirate MIDI or Graviton. I bind several CCs to the expression pedal (that’s my message stack), and when I move it - the controller sends those CCs, with user-defined range, MIDI Channel etc.
By “several parameters” I mean different CCs, sent to the same Device, the same CC sent to different Devices, or different CCs sent to different Devices.
- How can I have the action of loading a preset to send out some MIDI commands? Again, drawing the analogy to other MIDI controllers that I am familiar with: there’s a special stack of messages that is being sent when I call a Preset, even without me touching any controls.
The same question, but about calling different pages within a Preset - can I tie some MIDI commands to the action of calling a page?
All these things are easily doable with some lua scripting. I can create an example of each. Probably tomorrow. The key documentation is the lua extension guide. Lua extension | Electra One Documentation
2 Likes
Take a look at this preset. CC Sender
The control in the upper left sends MIDI CC’s on 3 different channels, 3 different CCs.
I just used variations on the base value(s) to hit multiple targets.
The core idea is set the control to be virtual then use a Lua function to do all the work.
2 Likes
Further to @oldgearguy excellent example. IMO, much of the power of the E1 lies in the virtual parameters and the parameter map. Here is a very simple example that uses the parameterMap.onChange function with virtual parameters to do things like you would do on a Morningstar MC with a momentary toggle switch and an expression pedal. Hope that helps. Electra One App
2 Likes
FYI. Updated the simple example preset to show a toggle on/off in addition to momentary (just toggle on) - that is more like how the Morningstar MC works, and also how to send midi stuff when the preset first loads like you can do with the Morningstar MC. Electra One App Cheers
1 Like
Wow, I am so grateful to all of you! Those examples are extremely helpful!!!
I started with @oldgearguy preset with a fader control that sends multiple CCs, and it’s already making things a lot clearer for me!
I have a few specific questions on different pieces of the LUA code. Is it allowed to paste parts of the code into the forum replies? Or do I need to do it differently?
1 Like
Paste away. Context helps and knowing what your goal is can keep the replies focused.
Someone mentioned you in a post.
| SV_huMMer
June 24 |
Wow, I am so grateful to all of you! Those examples are extremely helpful!!!
I started with @oldgearguy preset with a fader control that sends multiple CCs, and it’s already making things a lot clearer for me!
I have a few specific questions on different pieces of the LUA code. Is it allowed to paste parts of the code into the forum replies? Or do I need to do it differently?