Unfortunately, there is no standard definition for negative values in MIDI spec, so each manufacturer does their own thing(s).
Examples are
- using one Cc 0-127 for positive values, a second Cc 0-127 for negative values
- Setting 0 at 64, 65 and up are positive, 63 and down are negative
With SysEx, it gets even hairier
Roland may set 0 at 08 00 00 00, so 08 00 00 01 is 1, 07 7F 7F 7F is minus one, etc. Or sometimes they set 0 at 04 00 00 00.
For simple cases, such as zero at 64, you can set display min and max as appropriate for the negative values.
Search for "negative" in the forums and you will see some prior discussions.
For more complicated cases, Named Ticks are the solution. Easiest to build in a spreadsheet, then paste into the Named Ticks text field.
I have not researched the TC format, but since you say the positive works correctly, this is probably their approach. For the example, I presume a two byte SysEx, 0 is at 00 00, 1 is 00 01, -1 is 7F 7F, etc. We can build the table as follows:
| Value | MSB | LSB | 128*MSB+LSB # | Load this Column in Named Ticks |
| | | | ... |
| -2 | 7F | 7E | 16382 | 16382 \ -2 |
| -1 | 7F | 7F | 16383 | 16383 \ -1 |
| 0 | 00 | 00 | 0 | 0 \ 0 |
| 1 | 00 | 01 | 1 | 1 \ 1 |
| 2 | 00 | 02 | 2 | 2 \ 2 |
| | | | ... |
# Hex2Dec(MSB) * 128 + Hex2Dec(LSB), or use decimal in MSB, LSB columns (7F = 127, etc)
While the SysEx definition field uses Hex, the named ticks values are decimal.
Why does not MD have options for the negative values? Frankly there are too many possible formats and you do have an approach with Named Ticks.