14bit SysEx - Two's Company (Positive Value)

Hello!
I need to have a Value Range from 0-255.
The only way I know to Send a 14bit packaged parameter is using a Negative Value to get access to the Two’s Company and 14bit Option. So, I just used -1

Is there another method to achieve this or a way to not display the -1?

I am new to the community and just a couple days into creating my first preset.

Thanks,
Michael

1 Like

You need the 0-256 value range for a virtual parameter? A SysEx parameter? NRPN? CC 7 bit? CC 14 bit?

2 Likes

Sorry, this is for a SysEx parameter.
I send the value over SysEx byte positions 7 & 8

Take a screenshot of the sysex construction then as well as the settings of the parameter and paste them in the thread, so we can see what they are.

![Screenshot 2024-08-07 at 4.42.52 PM|384x184]
Screenshot 2024-08-07 at 4.46.26 PM
(upload://eAXMqvIxRNmEpSPLdCOlLMZdsFd.png)
Screenshot 2024-08-07 at 4.43.11 PM




Screenshot 2024-08-07 at 4.42.52 PM

Hi, I remade this fader. All looks good.
It sends values over the following range (bytes 7 and 8):

  • value -1 = 7F 7F
  • value 0 = 00 00
  • value 1 = 00 01
  • value 127 = 00 7F
  • value 128 = 01 00
  • value 255 = 01 7F

This is quite as expected for a Two’s Complement in 14 bit version, no?
What Hex values are your trying to achieve for bytes 7 and 8?

Thank you for looking at this.
The slider does work, but my issue is – I want a Range 0-255 not -1 to 255.
I am using the -1 to gain access to the :Two’s compliment as it only shows up for use when a negative value is provided.
For now, I just reformat the value of the control to offset by addition of 1.
This works as temporary.

That is a good solution, that is what formatting is for.

1 Like

MIDI (1.0) uses 7 bits to transfer value data. If you need to send a value that exceeds 7 bits, ie. bigger than 127, it must be sent as multiple 7bit “bytes”. To do that, you need to instruct your Electra One what the desired value range is, how it needs to be split into individual 7bit chunks, and where those chunks will be placed in the SysEx message.

This is an example of constructing a SysEx message that sends a value with range 0 - 255:

  1. create a control with the SysEx parameter type and set the MIDI minimum to 0 and MIDI maximum to 255.

  1. edit the SysEx bytes. (click on the Edit Sysex Data)

  1. define the SysEx message bytes and make sure you include two “value” bytes. Position of those bytes depends on the actual SysEx message format. Here, just for the demostration, I put them to position 1 and 2.

  1. define how the control’s value will be split into the 7-bit chunks. Again, this depends on the actual SysEx message format. To illustrate that, I place lower 7 bits of the control’s value to the first SysEx value byte, and the MSB of the control’s value to the second SysEx byte:

The SysEx messages sent by this control will looks like this:

1 Like