I was playing around with a basic preset to send patch change messages. I created some virtual controls because I wanted to select the bank and patch before retrieving the actual patch (rather than continually send bank/patch CC messages).
I noticed that when I created 2 virtual faders and set their parameter number to be the same, there was some strange interaction between them. When I moved one the other also changed value. After changing their parameter numbers to be different, the interaction went away. Since the controls were virtual, initially I didn’t care about the parameter number because I was using a script to get and store the values.
So, my question is – can I created two of the same controls with the exact same type and parameter number or is that a bad thing? (for example, a “get current patch” button on 2 or more pages that sends the exact same message and has the same parameterNumber)
What makes a control uniquely identifiable in the ElectraOne system?
The unique identification is a combination of the parameterType and the parameterNumber. If you create two or more controls with of the same parameter type and with identical parameterNumber, they all will be in sync.
This is actually a result of the fact that they all refer to the same entry in the ParameterMap in the system.
ok, good to know. It gets weird when you have a list and a fader with the same type and parameterNumber. Or a momentary button and fader. I figured the ParameterMap entry was the common point.
Yeah, my thinking is that the combination (of type and the number) really represents the particular parameter value. If the controls using it were not in sync, it would provide an inconsistent image of the values. Also, when the parameter data is coming via the MIDI interface there is probably no other way to process such data.
This is also a reason why I keep the parameterType and parameterNumber as the unique identifier instead of some artificial Id. I wanted to make it explicit that we work here with the value of given MIDI parameter and that parameter may be used on several places. An artificial identifier would hide that fact.
Even mixing several control types with the same parameter number works good. So you can build a simple OSC-MUTE button which doesn´t exist in the synth you´re controlling by having a toggle button with the ON value “0” on the same parameter number as the OSC Level for example!