-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decode PV fader response values / transform between logarithmic<->linear values #17
Comments
Is that same for all channels? I have no mixer to check now. |
I haven't fully investigated for other changes yet, will check later this week |
Channel faders
|
Also see #25 |
Did you figure out what this number means? I am not so clever from these values (0.901-0.91) There has to be some formula used, but I didn’t find how it works yet. I wanted to try to debug the UC but I dind’t find a time for that yet. |
A sample of the values plots, they are linear to the logarithmic volume So we can convert it to a linear value. Otherwise, we can read the |
Implement as a [0-100], the UC app only allows so many values anyway |
Tried curve fitting the values for a few hours, but something wasn't working... Note that for AUX mixes, a request is sent for
|
presonus-studiolive-api/src/lib/Client.ts
Lines 97 to 106 in 3e926a5
For volume, the ZB value is a float32 (BE), 0.0 - 1.0, linear - so represents the linear fader position
But the PV packet contains
c3 f5 68 3f
at max, andba c5 66 3f
at minFrom previous research (see here), we know that the
PV
values increase non-linearly (when parsed as a uint32 LE). See the pink curve above.We can create a LUT / approximation curve function like the below
presonus-studiolive-api/src/lib/util/valueUtil.ts
Lines 6 to 10 in 3e926a5
I'm not sure what the best internal representation for the fader positions should be - Should they be stored as a linear scale, or logarithmic scale.
I'm thinking, store the values as a linear scale - [0.0, 100]
Doesn't matter too much since Node.js can handle it, but for optimal performance maybe we shouldn't use floats; and store from [0, 65535]? Or just [0, 100]?
The text was updated successfully, but these errors were encountered: