New beta release with the graphics library

I have just deployed a new beta release of the firmware and webapp on to beta.electra.one. It is an alpha version of the upcoming v3.6. It brings a new feature that allows preset creators to use custom controls with their own methods for painting, reading the display touch and pots.

The idea has been around for quite a long time. I decided to implement just recently while I was working on presets for Kawai K5 and K5000. The E1 presets for these additive synths do not bring much extra value if user cannot see the harmonics and their levels. With the 3.6 alpha release I was able visualize the harmonics according to the settings of other parameters, ie. the custom controls were display-only:


(I guess @duster will like that)

As the next step the idea was extended with allowing the custom control callbacks to access information about the (multi) touch and pots. As the work got quite far I would like to share it with you here to gather some feedback.

There are a few presets to demonstrate the new functionality:

Simple graphics
XY Pad
The Cube LFO

It is all on beta.electra.one and you will be able to run the presets only with 3.6.0a beta firmware or later. It really is meant for testing, evaluation, and feedback. Do not start working on anything serious before it becomes part of the official public release.

Along with the addition of the vector graphics functions, I extended the E1 Lua so that the Control object can have extra attributes and methods added. Either the instances or the Control class as a whole. I will write some more info on that later. But the idea can be seen in the demo presets above. The goal was to allow encapsulation of the data within the Control object instead of excessive use of global variables.

I am still planning to add number of commonly controls to the web editor, like extra envelope types. The Custom Control is really meant for situations when specific needs need to be covered. Like the K5 harmonics, diagrams of operators, visualization of LFO data, etc. I guess you can imagine we can do a lot with this.

The documentation at Preset Lua extension | Electra One Documentation has been updated already. v3.6 functionality is marked with an info box note.

Use the highlighted link to download the beta version firmware (on beta.electra.one):

And just a small teaser for those who will not test :slight_smile:

This is a simple LFO that outputs two CCs according to the XY position of one of the cube’s vertices. It is just a demo, not meant for any serious use. But the fun factor of working with the graphic library is quite huge. It also can be a good stuff for learning Lua. All the boring heavy lifting is done by the controller for you, you can just focus on the graphics.

20 Likes

@martin Would E1 be able to read/write usb storage files? I’d love to try and interpret (and update) the Super 6 patch files as well as look into the possibility of rendering the waveforms (.ws6 files - examples: Downloads)

1 Like

:star_struck:

That’s huge!
I will not be part of the Beta test as I will certainly be lost in the first second of testing all this new stuff, but it’s so cool to see this 3D cube rotating! And the XY pad is more than welcome!
Thanks so much for all these new possibilities!

1 Like

technically it is possible, but I do not have that on the todo list. For testing, however, you can turn your E1 (if it is mk2) to the disk mode and upload the files to E1 as if it were a USB storage.

Lua Extension API does not allow file access yet, but that is going to change soon.

there’s is an updated version of the beta firmware v3.6.0b now. There are a few minor changes / fixes:

  • setColor() accepts standard 24bit RGB format
  • print() function has improved alignment of text (left, center, right)

A very exciting development. Thanks a bunch!

1 Like

:yellow_heart:

looking forward!
Thanks @martin

1 Like

little bit late to this… been away

amazing martin!