Quote:
Originally Posted by azslow3
Not important for the mission, but I want to mention:
Hardware controllers do not send 7f 7f since none of them have real 14 bit resolution. Best faders are 10bit and the highest value they send is 7f 70.
That can sound not important, but some parameters have hi native resolution. When controlled from such faders without software correction for 10bit, they can not be set to "max" (the max value requested will be 0,9991, not 1,0).
The problem even more noticeable when the controller is just "Mackie compatible" but has 7bit faders. In that case the maximum it sends is 7f 00. Without correction, that produce 0,9922. MIDI resolution is very close to that (126 - 0,9921) and most parameters see such difference to 1. as significant.
In my software, I detect real resolution from 14bit controllers (PB, CC14, (N)RPN) "on the fly" by checking the presence of low order bits.
|
Yes, thanks for reminding me, although I will not be as heroic as you and detect bit depth on the fly, since this only matters at the extremes, because controllers may not be able to generate the final few bits.
I'll just add simple corrections for 14 bit faders:
if value is within .001 of 1.0 it equals 1.0.
if value is within .001 of 0.0 it equals 0.0.
As far as 7 bit, should be fine, since we do not use the 2 byte approach you show, but rather convert to normalized directly from the byte of interest.