Make Parameter Number independent from MIDI CC

While it might be sufficient for most use cases to have the Parameter Number of a MIDI CC set to the CC number itself, there are use cases where a separation of the two values would be beneficial.

Example:

The Clavia Nord Lead/Rack 1 allows direct control of most parameters only via MIDI CC. For its multi-timbral sound engine, there are four different sound slots. The parameters of the four slots are controllable via the same MIDI CCs on different MIDI channels (e.g. Filter Cutoff is CC 74 for all four slots, just on a different MIDI channel).

Unfortunately, some parameters of the Nord Lead, in particular all Shift functions are accessible only as part of a complete Sysex patch dump. Since this complete patch is rather large, it wouldn’t make sense to use it when not absolutely necessary. In order to perform a correct patch update for these special parameters, one would need to create a Sysex message that is referencing also all MIDI CC based parameters. Of course, that would require addressing them all individually, thus needing a separation of Parameter Number and MIDI CC.

As a solution I would imagine two dedicated fields, one for the Parameter Number one for the MIDI CC. By default, they could be set to the same value and thus behaving like the current implementation. But it would allow making a MIDI CC referenceable via a number different than the CC for special use cases like the one explained above.

Hope that makes sense! And thanks for making this awesome device!

1 Like

Not sure if this adds anything, but for the microQ preset I created I decided to do everything through SysEx, despite about a fourth of the parameters being available as a CC number. With SysEx values one must assign a unique ID for everything parameter on the Electra. I went that way because I wanted access to the entire synth, and didn’t want to mix the two protocols, so it may make sense to do the same on the Nord Lead. It is more effort, though.

1 Like

Thanks for the reply!
I don’t believe that would be feasible with the Nord Lead. The MIDI implementation of this synth allows individual control of its parameters only via MIDI CC. SysEx can only be used to perform patch dumps.

For performance reasons, I would send the data of a complete patch to update just one parameter only if there’s absolutely no other way.

I get your point. The idea of a separate “parameterId” was around from the very beginning. Eventually, I decided not to use in favour of a simpler JSON structure.

Please note, it is possible to address a CC parameter in the SysEx message template:

  {
    "type": "value",
    "rules": [
      {
        "parameterNumber": 39,
        "type": "cc7",
        "parameterBitPosition": 0,
        "byteBitPosition": 0,
        "bitWidth": 4
      }
    ]
  }

This tells Electra to pick value of CC7 39. It works for all types of supported messages and for inward and outwward message rules. If the type is omitted, it defaults to sysex parameters.

You cannot, however, and I guess that is the issue of Nord Lead, address the CC on different channels. I will think about that…

1 Like

Thanks a lot, Martin!

I figured out that CCs can be addressed in the SysEx template. So it works fine as long as all CCs are sending on the same MIDI channel (or different CCs on different MIDI channels).

But yes, it doesn’t allow addressing CCs on different MIDI channels if the CC numbers are the same.

I understand that this would potentially clutter the interface and make things more complicated. And since this functionality is required just in corner cases, maybe it could be made accessible only via the row JSON.

While I believe that this functionality would make Electra One even more flexible, I also think that it’s more a “nice to have” than a “must”. :slightly_smiling_face:

yeah, agreed. I can imagine having an optional “reference” attribute or something similar. It could be used in those special situations.

1 Like