logue-sdk
logue-sdk copied to clipboard
NTS-1 mkII: MIDI send/receive parameter values inconsistency
The current MIDI CC/NRPN nadling implementation have inconsistencies. Just an example for OSC A MSB/LSB handling:
- OSC A LSB (CC102) sent before MSB (CC54) might be ignored, i.e. only the CC54 might be reflected in program dump afetr CC102/CC54 sequence. The CC54/CC102 sequence seems to work consisnent in that term. It should be fixed or reflected in MIDI implementation document similar to *2-1
- The valies itself are inconsistent: for the OSC A with 0....16363 range (changeing the range to 0...1023 change nothing) in the header parameter definition, sending 0...1023 in higher 10 bits of 14-bit CC54/CC102 qill result in the following OSC A valie in program dump:
- 0...512 - values are in par
- 513-1023 - values are 1 less, except of the next:
- 522 and every 8th up to 1018 are 9 less
- setting lower 4 bits of LSB (CC102) just changes the reusult just only for 1023
The result is reproducible, test result sheet available here: https://docs.google.com/spreadsheets/d/1xZaxXdUIRua6vdT9HF-SRPVPFKR3oh125u0vGNMLQ0g/edit?usp=sharing
UPD; all of the above is applicable to Param NRPN's as well. I.e.
- despite of the *2-1, sending CC38 0, CC6 0 and got 7 in the dump from the last CC38 value
- header parameter range definition affects the dump value, but the 14-bit CC value is decimated to 10-bits. For both 0...16383 and 0...1023 p.2 of the above is also the case.