1 (edited by rallfo 2016-01-05 19:33:30)

Topic: OSC control of TotalMix volume - rounding bug/error

Hello, I'm doing some experiments with OSC on TotalMix FX with my Fireface UCX.

However it appears that TotalMix FX is rounding some of the floats it sends/receives via OSC incorrectly.

For example the "/1/mastervolume" message from TotalMix has a 32-bit float representing the control value.

But sending these exact same bytes back as a "/1/mastervolume" message results in the volume value being slightly higher than it ought to be and another "/1/mastervolume" message with a slightly larger value (0.1% error).

More precisely:

With Master Out set to Headphones (7/8) on Fireface UCX
If you send:
/1/mastervolume X
Response from TotalMix:
/1/mastervolume X + E

where the error E = 0.0009765 * X - 8.679E-09   [ for 0 < X < 1 ]
(for max/min values of 0.0 and 1.0 there is no error)

For example:
1. Double-click master volume in TotalMix to reset volume to 0db
2. TotalMix sends a "/1/mastervolume" message with the float 0x3F51344D = 0.8172043...
3. Send this exact float 0x3F51344D back to TotalMix in "/1/mastervolume" message
4. TotalMix sends a "/1/mastervolume" message with the float 0x3F5168A6 = 0.8180031...

The test program I have written is simply echoing back the exact same byte values and I have verified this by sniffing the OSC messages with Wireshark.

If you continue this process the volume slider slowly goes up!

We can actually send the float value X - E instead and TotalMix sets and responds with the correct value X (to 6 decimal places).

So this is not just rounding inaccuracy but a systematic error that can be fixed! Thanks smile

Setup:
Fireface UCX rev 46
TotalMix FX 1.12 (DSP-SW 24)
USB Driver version: 1.0089
Windows 10 x64

2

Re: OSC control of TotalMix volume - rounding bug/error

I expect this to be a hardware limitation. Like you can not set any value with the encoder (or the TotalMix fader) you might not be able to set any value via OSC. The unit changes to the next value that is supported by the hardware.

Or do you mean this happens also when you send a specific value that the unit issued before?

Regards
Matthias Carstens
RME

Re: OSC control of TotalMix volume - rounding bug/error

MC wrote:

Or do you mean this happens also when you send a specific value that the unit issued before?

Yes precisely. But if instead you send that value minus E (given above) the correct specific value is set.