Closed goofy2k closed 1 year ago
I knew that an RPN or NRPN message was a set of 4 Control Change messages: Bn 64 Bn 65 (for the parameter number) Bn 06 Bn 26 (for data entry 14 bit) I didn't know the existence of 5 bytes messages
See the 18th slide in this doc. With Bn 06 the message can be extended from 3 to 5 bytes by using 0x38 as the 4 th byte: 9_MIDI_code.pdf
But using 5 bytes may be not compliant with the MIDI-BLE standard: rp52public.pdf
I will postpone this for later. So forget about the request :-) Nevertheless it may be useful for to have the feature in you lib later (depending on the area of use of course)
For discussion. Please let me know if I overlook a different way to implement this.
Some sound generating devices may use use RPN/NRPN messages for special controllers. These may involve raw messages longer than 3 bytes. See e.g. 9_MIDI_code.pdf
NiCMidi msg.cpp only deals with a max. length of 3 messages. Access to the individual bytes goes via functions where the byte number is hard-coded (e.g. msg.GetByte1()).
To prevent gross reorganisation of msg.cpp and classes that use it it could be helpful to enable at least passing incoming long RPN/NRPN messages to the output.
If the proposed approach is indeed useful, I will try to find a way to implement this. I am also implementing dealing with NRPN messages in my synth.
[EDIT]