Is there a way to implement controls that dynamically change their parameter number (target)? I don’t see a Lua API to handle this.
Here’s more info on the instrument I’m working with:
Multiple, equivalent blocks which can be assigned a type (~10 blocks). As the instrument changes it’s preset, the type of each block can change.
Depending on the type assigned to each block, a subset of 100 parameters are editable per each block.
The block number and the parameter are the MSB and LSB for the NRPN address.
I think I’m missing something conceptually here. Is there another approach to handle this? Create 100 controls for each block and hide/disable all but the relevant ones?
Another idea I had was to create the controls attached to virtual devices and manually handle the midi send and receive by custom lua? That seems like a lot of effort and bypasses a lot of what the Electra One provides.
I believe you should give the exact challenge you are trying to resolve here, so the community may help you out.
There are many instances where I use virtual controls instead of CC controls to resolve the more complex scenario’s. For instance on synths like the XV5080, due to its parts set up there are too many parameters to assign them their own control, even for an E1. But by making use of lua, one can even do better and have a single ‘virtual’ part configured on the E1, controlling whichever of the 4 ‘real’ parts of the synth.
The same holds true when for instance controlling a bi-timbral synth, without having to make controls per timbre.
Not saying it is easy, but that is what the Electra is about: Solve simple challenges with the standard capabilities, and use lua whenever you want to go beyond a standard implementation.
Most of my own presets go beyond the standard, which brings a set of lua instructions with it.
I’m trying to control the Kemper Profiler which has 8 blocks that are assignable to arbitrary effects with their own parameters. Each block is the msb and each parameter is the lsb of the nrpn address. There are over 100 parameters of which only a subset apply to each effect type of each block.
I’d like to create a page to control each block that is dynamically configured with the most relevant controls for the blocks assigned effect. The type of effect and current value will be determined from sysex. Starting simple, all controls could be the same type (rotary) with custom ranges/values changed per parameter.
There is no magic lua. Every non-trivial case will require some custom scripts.
get your patch parsing going
I’d reformat incoming data into a datatable[blocknr][paramnr][‘value’] and use it as a working buffer, could also include datatable[blocknr][paramnr][‘label’] string with it
Control1 for the “block” selection
Control2 for parameter selection
Control3 for the value
Callbacks:
Control1 and Control2: get your datatable[blocknr][paramnr][‘value’] and datatable[blocknr][paramnr][‘label’] and set the name and value of your Control3
Control3: get values of Control1 and Control2 and set datatable[blocknr][paramnr][‘value’]
also send the value to your device at this point
Making a preset for an effects device is not the easiest of presets to start with. Will this be your first endeavour in preset making?
I’ve been looking for understanding the complexity of the Kemper Profiler, but the standard 300 page manual doesn’t alboratecon the NRPN or Sysex implementation. Care to join these, if you have them?
Perhaps a bit of inspiration can be gotten from the Zoom CDR-70 stomp pedal preset I made a while ago. This allowed for 6 different virtual pedals to be combined, each with their own parameters with different names, ranges, selection lists and colors. All is set dynamically.
Thanks. I’ve started with standard amp controls which don’t have the complexity of the effect blocks.
Here’s the midi documentation for the device. It’s a separate document from the main, 300 page manual. It’s a tad hard to find on their donwloads page.