Dynamic controls... aka...array of parameter groups sharing one set of controls

A repeated theme I am running into as I review many sysex implementations is this: a parameter group which repeats across multiple voices, kits, channels etc. In MOSS, this came up as oscillator types for voices. In K5000, it came up as PCM/Additive wave data for sound sources. I was reviewing a whole bunch of 80s/90s drum synths/romplers as I am keen on buying one. All of them had a similar structure where we need to edit multiple sound sources, each having the same set of parameters.

In my view, not being able to support this is probably the most significant deficiency in Electra today, which is limiting its ability to support a variety of sysex-heavy vintage machines. Here is a snapshot from a section of sysex from Yamaha RM50:

To represent and recall this, Electra needs to use 13 * 16 = 208 controls! But, this is just a portion of the midi implementation. In an ideal scenario, this should map to one channel selector and 13 controls. As the channel selector is changed, the corresponding control values get recalled and shown on screen. With such an implementation, this will reduce from 208 to 14 controls. This way, the available 12 pages will be more than sufficient for most midi implementations.

Of course, this raises the question of memory usage, since one can go crazy, building arrays after arrays, resulting in thousands of parameters in memory. So, overall restrictions need to be enforced to keep the total to a manageable value. @martin, I would love to discuss this if there is some sort of feasibility to support more than 432 parameters mapped to the available 432 controls.

I added the support for changing the assignment of lists in the run time as well as the changes of device channels. It is available in the latest beta. @shankar if you can, please review the Lua ext docs and see if you would be able to implement above parameter assignments with it. Thanks!

1 Like

It is totaly possible to have a single interface that edits different “parts” but the specifics depend on what the synth is capable of in terms of SysEx requests. I’ve got an XV-5080 preset that does this – check the “Tone” select buttons: what they do is select which one of the four voices (effectively) the editor should edit and the preset fires off a “tone dump request” in the background, updates the controls and lets the user change the parameters from a single page (or rather, 5 :).

1 Like

Thanks, @martin! Gonna check it out later today. Was off on a vacation over the long weekend :slight_smile:. I need to check the patch sysex as well. The last time I was working on it a couple of weeks back, I ran into an issue of values not correctly being read. Perhaps that is also working fine now with all the latest updates.

@akira, this is one approach I am yet to try out with my Triton due to the patch read issue I was facing earlier, but it definitely makes sense to approach it that way.

The patch read issue I was facing earlier is not there anymore, yay :slight_smile:. Going to build a basic RM50 preset and rework my Triton MOSS preset as well over the weekend. Will report back on Sunday mostly!

1 Like